Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> W Mysql bylo Null a w PgSQL?
noose
post 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 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 :?:
Go to the top of the page
+Quote Post
boloo77
post 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]
Go to the top of the page
+Quote Post
BzikOS
post 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
Go to the top of the page
+Quote Post
noose
post 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 :?:
Go to the top of the page
+Quote Post
BzikOS
post 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.
Go to the top of the page
+Quote Post
boloo77
post 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
Go to the top of the page
+Quote Post
FiDO
post 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 :/
Go to the top of the page
+Quote Post
noose
post 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 :]
Go to the top of the page
+Quote Post
carramba
post 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]
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.06.2024 - 17:39