У меня была аналогичная проблема, и мне нужно было вставить несколько, если они не были. Итак, из приведенных выше примеров я пришел к этой комбинации ... это здесь на всякий случай, если кому-то это понадобится.
Обратите внимание: мне нужно было определять имя везде, где MSSQL требовал его ... MySQL работает с * слишком .
INSERT INTO names (name)
SELECT name
FROM
(
SELECT name
FROM
(
SELECT 'Test 4' as name
) AS tmp_single
WHERE NOT EXISTS
(
SELECT name FROM names WHERE name = 'Test 4'
)
UNION ALL
SELECT name
FROM
(
SELECT 'Test 5' as name
) AS tmp_single
WHERE NOT EXISTS
(
SELECT name FROM names WHERE name = 'Test 5'
)
) tmp_all;
MySQL: CREATE TABLE names
(OID
int (11) NOT NULL AUTO_INCREMENT, name
varchar (32) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (OID
), UNIQUE KEY name_UNIQUE
(name
)) ENGINE = InnoDB AUTO_INCREMENT = 1;
или
MSSQL: CREATE TABLE [имена] ([OID] INT IDENTITY (1, 1 ) NOT NULL, [имя] NVARCHAR (32) NOT NULL, ПЕРВИЧНАЯ КЛАВИАТУРА ([OID] ASC)); CREATE UNIQUE NONCLUSTERED INDEX [Index_Names_Name] ON [имена] ([имя] ASC);