Нужно ли перечислять все столбцы по порядку и иметь значения для каждого из них в операторе INSERT? - PullRequest
0 голосов
/ 12 августа 2009

Возможно ли это, или мне нужно перечислить все столбцы?

INSERT INTO table_name (column1, **column3**, column2,...)
VALUES (value1, value2, value3,...)

Нужно ли перечислять все столбцы по порядку и иметь значения для каждого из них?

Ответы [ 4 ]

5 голосов
/ 12 августа 2009

Вам нужно только поставить столбцы, которые вы планируете вставить. Единственный порядок, который должен совпадать - это имя и значение столбца.

IE: 3 столбца: col1, col2, col3

INSERT INTO TABLE ( col1 , col2 ) VALUES( col1value , col2value )

INSERT INTO TABLE ( col2 , col3 ) VALUES( col2value , col3value )

INSERT INTO TABLE ( col3 , col2 ) VALUES( col3value , col2value )

1 голос
/ 12 августа 2009

Вы можете размещать столбцы запроса в любом порядке, если вы указываете этот порядок, как вы делаете выше. Фактические значения, которые вы вставляете как часть предложения VALUE, должны совпадать с частью INSERT INTO (x,y,z) вашего запроса.

Любые столбцы, которые вы указываете , а не , будут иметь значение по умолчанию. Значение по умолчанию определяется значением DEFAULT, установленным при создании столбца.

Ваш INSERT может потерпеть неудачу, если в столбце есть спецификация NOT NULL и нет значения DEFAULT, и вы не указали его в запросе.

1 голос
/ 12 августа 2009

Для вашего оператора INSERT это должно быть так:

INSERT INTO table_name (column1, <b>column3</b>, column2,...) VALUES (value1, <b>value3</b>, value2,...)

Поскольку вы переместили column3, значение3 должно "совпадать" с ним

0 голосов
/ 12 августа 2009

Ваши имена столбцов должны соответствовать значениям, которые вы вставляете. Например, в приведенном выше запросе, если column1 - это varchar, column3 - int, и т. Д., Значения должны соответствовать и располагаться в точном порядке для успешного выполнения вашего запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...