Подтвердить что ты не робот

Как вставить значения по умолчанию в таблицу SQL?

У меня есть таблица вроде этого:

create table1 (field1 int,
               field2 int default 5557,
               field3 int default 1337, 
               field4 int default 1337)

Я хочу вставить строку, которая имеет значения по умолчанию для поля2 и поля4.

Я пробовал insert into table1 values (5,null,10,null), но он не работает, и ISNULL(field2,default) тоже не работает.

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

4b9b3361

Ответ 1

Просто не включайте столбцы, для которых вы хотите использовать значение по умолчанию для вашего оператора insert. Например:

INSERT INTO table1 (field1, field3) VALUES (5, 10);

... примет значения по умолчанию для field2 и field4 и назначит 5 для field1 и от 10 до field3.

Ответ 2

Лучше всего перечислить свои столбцы, чтобы вы не зависели от изменений таблицы (новый порядок столбцов или столбцов и т.д.)

insert into table1 (field1, field3)  values (5,10)

Однако, если вы не хотите этого делать, используйте ключевое слово DEFAULT

insert into table1 values (5, DEFAULT, 10, DEFAULT)

Ответ 3

Попробуй так:

INSERT INTO table1 (field1, field3) VALUES (5,10)

Тогда поле 2 и поле 4 должны иметь значения по умолчанию.

Ответ 4

Лучший способ:

insert your_table
default values

Ответ 5

Если ваши столбцы не должны содержать значения NULL, вам нужно также определить столбцы как NOT NULL, иначе переданный в NULL будет использоваться вместо значения по умолчанию и не приведет к ошибке.

Если вы не передадите какое-либо значение этим полям (для чего вам нужно указать поля, которые вы хотите использовать), будут использоваться значения по умолчанию:

INSERT INTO 
  table1 (field1, field3) 
VALUES   (5,10)

Ответ 6

Чтобы вставить значения по умолчанию, вы должны опустить их примерно так:

Insert into Table (Field2) values(5)

Все остальные поля будут иметь значение null или их значения по умолчанию, если оно определено.

Ответ 7

CREATE PROC SP_EMPLOYEE                             --By Using TYPE parameter and CASE  in Stored procedure
(@TYPE INT)
AS
BEGIN
IF @TYPE=1
BEGIN
SELECT DESIGID,DESIGNAME FROM GP_DESIGNATION
END
IF @TYPE=2
BEGIN
SELECT ID,NAME,DESIGNAME,
case D.ISACTIVE when 'Y' then 'ISACTIVE' when 'N' then 'INACTIVE' else 'not' end as ACTIVE
 FROM GP_EMPLOYEEDETAILS ED 
  JOIN  GP_DESIGNATION D ON ED.DESIGNATION=D.DESIGID
END
END