Sql insert на основе результата select

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

table1
tbl1-num
1

Что-то вроде:

INSERT INTO table1 (tbl1-num) 
VALUES ((SELECT MAX(tbl1-num)) + 1)

Будет ли это работать?

Поэтому, в конце концов, я хочу, чтобы таблица была чем-то вроде

Таблица 1

tbl1-num
1
2
1 ответ

Привет, у вас есть два варианта:

1) С помощью выбора значения для каждого столбца, например:

INSERT INTO table_1 (col1) VALUES ((SELECT isnull(MAX(col1),0) from table_1) + 1)

И 2) Используя выбор запроса для вставки строки, например:

INSERT INTO table_1 (col1)
select isnull(MAX(col1),0)+1 from table_1

licensed under cc by-sa 3.0 with attribution.