W Mysql bylo Null a w PgSQL? |
W Mysql bylo Null a w PgSQL? |
11.05.2004, 14:35:28
Post
#1
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 0 Dołączył: 30.07.2003 Skąd: Gdynia Ostrzeżenie: (0%) |
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 :?: |
|
|
11.05.2004, 14:41:22
Post
#2
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 1.10.2003 Skąd: Mikołów Ostrzeżenie: (0%) |
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] |
|
|
11.05.2004, 14:57:35
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 660 Pomógł: 0 Dołączył: 28.08.2002 Skąd: Starachowice Ostrzeżenie: (0%) |
php => Bazy danych #-o
|
|
|
11.05.2004, 15:55:45
Post
#4
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 0 Dołączył: 30.07.2003 Skąd: Gdynia Ostrzeżenie: (0%) |
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 :?:
|
|
|
11.05.2004, 15:58:17
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 660 Pomógł: 0 Dołączył: 28.08.2002 Skąd: Starachowice Ostrzeżenie: (0%) |
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. |
|
|
11.05.2004, 16:05:29
Post
#6
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 1.10.2003 Skąd: Mikołów Ostrzeżenie: (0%) |
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 |
|
|
11.05.2004, 16:38:02
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) |
W Postgresie sa sekwencje, ale wersja uproszczona tez jest. Wystarczy zdefiniowac pole typu SERIAL, szczegoly w manualu.
-------------------- Brak czasu :/
|
|
|
11.05.2004, 17:18:54
Post
#8
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 0 Dołączył: 30.07.2003 Skąd: Gdynia Ostrzeżenie: (0%) |
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 :] |
|
|
11.05.2004, 20:40:30
Post
#9
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 0 Dołączył: 29.10.2003 Skąd: Toruń Ostrzeżenie: (0%) |
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] |
|
|
Wersja Lo-Fi | Aktualny czas: 14.06.2024 - 17:39 |