Skrócony INSERT dla tabeli z AUTO_INCREMENT |
Skrócony INSERT dla tabeli z AUTO_INCREMENT |
9.02.2012, 19:22:24
Post
#1
|
|
Grupa: Zarejestrowani Postów: 308 Pomógł: 13 Dołączył: 31.10.2008 Ostrzeżenie: (0%) |
Witam,
stworzyłem tabele:
Jeżeli chcę wstawić do niej rekord muszę pisać:
Czy jest możliwość skróconego zapisu ? Tak ja np. w MySql:
Ogólnie rzecz biorąc ten zapis przechodzi, ale nie wstawia wartości auto tylko 0 :/ Z góry wielkie dzięki Pozdrawiam A. Ten post edytował sannin 9.02.2012, 19:24:13 |
|
|
11.02.2012, 19:20:52
Post
#2
|
|
Grupa: Nieautoryzowani Postów: 8 Pomógł: 1 Dołączył: 18.07.2007 Ostrzeżenie: (0%) |
Skoro podajesz wartość 0 to wstawia 0
W miejsce 0 musisz wpisać DEFAULT. Możesz też używać tego typu konstrukcji: Kod INSERT INTO tabela (kol1, kol2, kol3) VALUES
('a','b','c'), ('c','d','e'), ('f','g','h'); Ten post edytował AsYlum 11.02.2012, 19:21:45 |
|
|
11.02.2012, 19:56:22
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Jeszcze uzupełniając dodam jedną rzecz http://www.postgresql.org/docs/9.1/static/...s-sequence.html
Ponieważ PG operuje na sekwencjach możesz też używać nextval(). -------------------- |
|
|
13.02.2012, 11:07:06
Post
#4
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) |
http://www.postgresql.org/docs/9.1/static/sql-insert.html
dlaczego ma działać auto jak podałeś mu wszystkie kolumny? btw2 nie da się zrobić insertu nie podając kolumn które chce się uzupełnić. -------------------- cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena |
|
|
13.02.2012, 13:50:13
Post
#5
|
|
Grupa: Zarejestrowani Postów: 308 Pomógł: 13 Dołączył: 31.10.2008 Ostrzeżenie: (0%) |
Dzięki.
@cojack: Nie masz racji, podawanie kolumn jest nieobowiązkowe, również co do auto się myslisz podając wszystkie kolumny i wpisując DEFAULT lub nextval() jak podali koledzy wyżej też działa. Pozdro. |
|
|
13.02.2012, 16:53:37
Post
#6
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) |
używaj nextval() to się przekręcisz w końcu. Nie polecam używać nextval() a na pewno nie przy serial.
@edit z tym nie podawaniem kolumn chodziło mi o to że nie da się zrobić takiego insertu: gdzie struktura jest taka jak u Ciebie. Dlatego zawsze definiuje się kolumny które podajesz. Przyjmij tą praktykę za pewnik to nigdy nie będziesz miał problemu. Ten post edytował cojack 13.02.2012, 16:55:45 -------------------- cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena |
|
|
15.02.2012, 19:03:43
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Ja dodam że bardziej ten link podałem aby pamiętać o tym, bo oczywiście wygodniejsze będzie wstawianie DEFAULT ale mogą też pojawić się sytuacje w których chcemy jednak operować na sekwencji (np jakieś wybranie numeru w procedurze).
-------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 18:40 |