2011-07-15 11 views
7

Mam tabelę oracle z sekwencją i wyzwalacz do autoinkrementacji kolumny. Teraz chcę wstawić. Normalnie powinienem napisać:Oracle: wstaw bez kolumny specyfikacja

INSERT INTO table (column1, column2,...) VALUES (value1, value2) 

, ale chcę tylko wstawić rekord bez wartości domyślnych. Jak to zrobić w Oracle?

`Mysql`: INSERT INTO table() VALUES() 

`Mssql`: INSERT INTO table default VALUES 

`Oracle:` INSERT INTO table (column1, column2,...) VALUES (default, default,...) 

Czy to jedyny sposób? Mam wyświetlić wszystkie kolumny?

+0

Czy można wyświetlić tylko jedną? –

Odpowiedz

7
INSERT INTO table (column1) VALUES (default); 

Reszta będzie domyślnie ustawiona!

4

Czy to jedyny sposób? Mam wyświetlić wszystkie kolumny?

Tak. I dobrą praktyką jest, aby zawsze określić wszystkie kolumny w instrukcji INSERT, dla których chcesz podać wartości.

+0

Nie, nie * masz *, aby wyświetlić * wszystkie * kolumny. –

+1

OK, wszystko, co chcesz zapełnić ... –

3

W Oracle nie musisz określać kolumn, ale nie spowoduje to, że będziesz otwarty na wprowadzanie błędów w momencie zmiany definicji tabeli.

może wstawiać się:

INSERT badania T WARTOŚCI (wartosc1 wartość2, VALUE3);

Zakłada Tabela T trzy kolumny

jest znacznie lepsze i możliwe, aby wkład z:

INSERT badania T (kolumna1, kolumna2, kolumna3) wartości (wartosc1 wartość2, VALUE3);

Nie użyłbym PL/SQL (jeśli możesz pomóc), gdy wprowadzasz przełączanie kontekstu z PL/SQL do SQL, a następnie z powrotem do PL/SQL.

3

brakowało mi tej części na pierwszym czytamy:

Mam tabeli Oracle z sekwencji i wyzwalacz autoIncrement kolumny.

Zakładam więc, że w kolumnie PK jest wypełniona sekwencja, a pozostałe mają wartości domyślne. Biorąc pod uwagę, że chciałbym to zrobić:

INSERT INTO table (pk_column) VALUES (NULL); 

Spust zastąpi wartość NULL (i jeśli nie z jakiegoś powodu, wkładka nie powiedzie się); a pozostałe kolumny zostaną wypełnione za pomocą wartości domyślnych.

+0

Możesz dodać 'default null' do pk, a następnie wstawić' insert into table (pk_column) values ​​(default) '. –