noose
11.05.2004, 14:35:28
Witam
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
11.05.2004, 14:41:22
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
11.05.2004, 14:57:35
php => Bazy danych #-o
noose
11.05.2004, 15:55:45
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
11.05.2004, 15:58:17
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
11.05.2004, 16:05:29
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
11.05.2004, 16:38:02
W Postgresie sa sekwencje, ale wersja uproszczona tez jest. Wystarczy zdefiniowac pole typu SERIAL, szczegoly w manualu.
noose
11.05.2004, 17:18:54
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
11.05.2004, 20:40:30
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.