Учебник по Informix SQL - Вставка строк - Возможные значения столбцов - иначе «Ссылка 1» в вопросе - начинается с выражения:
Предложение VALUES принимает только константузначения, а не общие выражения SQL.
Руководство Informix по SQL: синтаксис - оператор INSERT - предложение VALUES - в данном вопросе «ссылка 2» - полностью охватывает оператор INSERTвключая его использование в коде ESQL / C (встроенный SQL в C) и в коде SPL (язык хранимых процедур).В нем перечислены дополнительные параметры для того, что можно использовать, например переменные хоста (помеченные «только для ESQL / C» и «расширение Informix»).В нем также перечислены такие параметры, как «Выражение» и «Выражение константы».
В учебном пособии слишком упрощено то, что разрешено.
Руководство по синтаксису является более полным и более правильным.Существуют ограничения на то, что вы можете использовать в предложении VALUES, но они более обширны, чем указывает простое описание в учебнике, - но это учебник.Когда дело доходит до деталей, каждое значение в предложении VALUES является отдельным значением, возможно, результатом оценки функции или какого-либо другого выражения.Существуют строгие ограничения на форму оператора SELECT
, который можно использовать, но их можно использовать:
create table x(i integer not null primary key);
insert into x values(1024);
insert into x values((select max(i)+1 from x));
Требуются круглые скобки вокруг SELECT
, а также круглые скобки вокруг предложения VALUES, поэтому двойные скобки необходимы.