Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: W Mysql bylo Null a w PgSQL?
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
noose
Witam smile.gif
Pytanko jak w temacie :]
w mysql wstawialo sie
[php:1:92cbd59169]
<?
$q= "INSERT INTO tabela VALUES(null,$cos,$bla,$itp)";
?>[/php:1:92cbd59169]
a w PgSQL?
Cytat
Warning: pg_query(): Query failed: ERROR: ExecInsert: Fail to add null value in not null attribute id . in /var/www/html/noose/zadanie/index.php on line 37

co zrobic tam wstawic :?:
boloo77
Nie znam sie na PgSQL, ale chyba dodajsz NULL do pola o atrybucie NOT NULL mozesz sprobowac dodac po prostu ''
[php:1:da599a7fa7]<?php
$q= "INSERT INTO tabela VALUES('',$cos,$bla,$itp)";
?>[/php:1:da599a7fa7]
BzikOS
php => Bazy danych #-o
noose
chodzi mi o to, ze pierwsze pole w mysql to zazwyczaj ID (auto_increment). tam w zapytaniu dawalo sie NULL i sam dzieki temu wpisywal tam odpowiedni (o 1 wiekszy) numer. Jak to zrobic w PgSQL :?:
BzikOS
Po prostu nic nie podawać.

[sql:1:060819443c]NSERT INTO tabela (pole2, pole3, pole4) VALUES($cos,$bla,$itp)[/sql:1:060819443c]

Czyli pomijasz całkiem pole auto_increment.
boloo77
To chyba w postgreSQL nie jest takie proste - nie ma czegos takiego jak auto_increment. Aczkolwiek mogę się mylić - nigdy nic na postgreSQL nie robilem.
zobacz tu
FiDO
W Postgresie sa sekwencje, ale wersja uproszczona tez jest. Wystarczy zdefiniowac pole typu SERIAL, szczegoly w manualu.
noose
Cytat
Po prostu nic nie podawać.

[sql:1:bddbcd8474]NSERT INTO tabela (pole2, pole3, pole4) VALUES($cos,$bla,$itp)[/sql:1:bddbcd8474]

Czyli pomijasz całkiem pole auto_increment.


dziala :] dzieki :]
carramba
w postgresie tez jest null tylko tyle ze piszesz je z duzych liter jak wszystkie komendy SQ'a

[sql:1:9a3b4081c9]INSERT INTO test (id,nazwa,opis) VALUES (1,'cos',NULL);[/sql:1:9a3b4081c9]

przy czym twoje zapytanie zwracalo blad z tego wzgledu, ze kolumna serial nie moze miec wartosci pustej SERIAL oznacza auto_incramentacje i troche to nielogiczne wstawianie tam pustej wartosci prawda ?

komenda powinna byc wywolana tak :

[php:1:9a3b4081c9]<?php
$q= "INSERT INTO tabela (row1, row2, row3) VALUES (NULL,$bla,$itp)";
?>[/php:1:9a3b4081c9]

przy czym przed row1 w bazie danych masz jeszcze id.[/sql]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.