Мне нужно сделать что-то простое – вставьте строку в MySQL (с PHP), но без значений. В таблице MySQL уже есть значения по умолчанию, которые ему нужны, поэтому мне не нужно вставлять какие-либо значения. Как выглядит инструкция вставки без значений для вставки?
INSERT INTO my_table VALUES ()
В SQL Server это так.
insert into TableName default values
Правильный путь с ключевым словом DEFAULT
:
INSERT INTO `table` DEFAULT;
или если не в режиме SQL Strict, вы можете просто предоставить пустой список значений и позволить полям использовать значения по умолчанию неявно:
INSERT INTO `table` () VALUES();
Вся необходимая информация содержится в документации для INSERT
:
Если вы не укажете список имен столбцов для INSERT … VALUES или INSERT … SELECT, значения для каждого столбца в таблице должны быть предоставлены в списке VALUES или в инструкции SELECT. Если вы не знаете порядок столбцов в таблице, используйте DESCRIBE tbl_name, чтобы узнать.
[..]
Если вы не работаете в строгом режиме SQL, для любого столбца, явно не заданного значения, устанавливается его значение по умолчанию (явное или неявное). Например, если вы укажете список столбцов, в котором не указаны все столбцы в таблице, столбцы без имени будут установлены по умолчанию. Назначение значения по умолчанию описано в разделе 10.1.4 «Значения по умолчанию для типа данных». См. Также раздел 1.8.6.2 «Ограничения на недопустимые данные».
[..]
Используйте ключевое слово DEFAULT, чтобы явно указать значение столбца по умолчанию. Это упрощает запись инструкций INSERT, которые присваивают значения всем, кроме нескольких столбцов, потому что это позволяет избежать записи неполного списка VALUES, который не включает значение для каждого столбца в таблице. В противном случае вам нужно будет записать список имен столбцов, соответствующих каждому значению в списке VALUES.
[..]
Если список столбцов и список VALUES пусты, INSERT создает строку с каждым столбцом, установленным по умолчанию:
INSERT INTO tbl_name () VALUES();
[..]
В строгом режиме возникает ошибка, если какой-либо столбец не имеет значения по умолчанию. В противном случае MySQL использует неявное значение по умолчанию для любого столбца, который не имеет явно заданного значения по умолчанию.
Вы можете использовать default values
:
insert YourTable default values