2011-08-16 5 views

Odpowiedz

39
INSERT INTO my_table VALUES() 
+1

Jest to właściwie poprawna odpowiedź dla MySQL. –

+1

Praca z mariadb również - 10.0.31-MariaDB – MarcoZen

9

W SQL Server wygląda to tak.

insert into TableName default values 
+1

+1 Hehe pokonał mnie 2 sekundy :) Pozdrawiam – Andomar

+1

+1, ponieważ działa również z Sqlite. – ceving

+0

To nie działało dla mnie z MySQL - a pytanie dotyczyło MySQL (zobacz tagi). A może coś nie tak i ta składnia działa również w MySQL? –

1

Można użyć default values:

insert YourTable default values 
5

Właściwym sposobem jest dostarczenie listy pustymi wartościami i niech pola wziąć ich domyślne wartości domyśle:

INSERT INTO `table`() VALUES(); 

Alternatywnie możesz użyć słowa kluczowego DEFAULT:

INSERT INTO `table` (`Col1`, `Col2`, ...) VALUES(DEFAULT, DEFAULT, ...); 

Albo (zakładając, że dajesz wartości dla wszystkich kolumn) po prostu:

INSERT INTO `table` VALUES(DEFAULT, DEFAULT, ...); 

wszystkie wymagane informacje można znaleźć w the documentation for INSERT:

Jeśli nie podawaj listy nazw kolumn dla INSERT ... VALUES lub INSERT ... SELECT, wartości dla każdej kolumny w tabeli muszą być dostarczone przez listę VALUES lub instrukcję SELECT. Jeśli nie znasz znać kolejność kolumn w tabeli, użyj DESCRIBE tbl_name do dowiedzieć.

[..]

Jeśli nie są uruchomione w trybie ścisłej SQL, każda kolumna nie jawnie podana wartość jest ustawiona na wartość domyślną wartość (explicite lub implicite). Dla przykładu , jeśli określisz listę kolumn, która nie wymienia wszystkich kolumn w tabeli, kolumny bez nazwy są ustawione na ich wartości domyślne. Domyślne przypisanie wartości opisano w rozdziale 10.1.4, "Typ danych Wartości domyślne". Patrz także sekcja 1.8.6.2, "Ograniczenia dotyczące nieprawidłowych danych ".

[..]

użyć domyślnego kluczowe aby ustawić kolumnę wyraźnie do jego wartości domyślnej . Ułatwia to pisanie instrukcji INSERT, które przypisują wartości do wszystkich, z wyjątkiem kilku kolumn, ponieważ pozwala uniknąć zapisywania niekompletnej listy wartości VALUES, która nie zawiera wartości dla każdej kolumny w tabeli, dla wartości . W przeciwnym razie musisz wypisać listę nazw kolumn odpowiadających każdej wartości na liście VALUES.

[..]

Jeżeli zarówno lista kolumnowa listy wartości są puste INSERT tworzy wiersz z każdej kolumny ustawione na wartość domyślną:

INSERT INTO tbl_name() VALUES(); 

[..]

w trybie ścisłym , wystąpi błąd, jeśli dowolna kolumna nie ma domyślnej wartości . W przeciwnym razie MySQL używa domyślnej domyślnej wartości dla dowolnej kolumny , która nie ma jawnie zdefiniowanej wartości domyślnej.

+0

'WSTAW NA nazwa_tabeli DEFAULT' nie działa w MySQL. Zamiast tego należy użyć 'INSERT INTO table_name VALUES()'. – izogfif

+0

'POKAŻ ZMIENNY JAK" sql_mode ";' daje 'STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION', więc uważam, że jest to tryb SQL Strict. Kiedy wykonuję zapytanie 'INSERT INTO nazwa_tabeli DEFAULT;' to daje błąd 'Błąd SQL (1064): Masz błąd w składni SQL; sprawdź instrukcję, która odpowiada twojej wersji serwera MySQL dla właściwej składni do użycia w pobliżu 'DEFAULT' w linii 1'. Wskazałem, że dałeś dwie możliwości, a pierwsza nie działa w przypadku MySQL. – izogfif

+0

@izogfif: To wydaje się dokładne, dzięki –

Powiązane problemy