При выборе значения констант без имен столбцов, как следующие
SELECT 'LULU CENT','sdfjg','NA'
имена столбцов возвращаемой результат будет таким же, как соответствующие значения столбцов, то есть имя первого столбца будет LULU CENT
, в второе имя столбца будет sdfjg
и т. д.
С вашего подзапросом следующая
SELECT 'LULU CENT','sdfjg','NA','NA',1991-01-01,1990-01-01,'active'
Название третьего и четвертого столбца будет таким же (NA
). Вы получите ошибку 1060, если вы поставите выше запрос внутри SELECT * FROM (...) AS tmp
как этого
SELECT * FROM
(
SELECT 'LULU CENT',
'sdfjg',
'NA',
'NA',
1991-01-01,
1990-01-01,
'active'
)
AS tmp
Вам необходимо установить другое имя для каждого столбца в подзапросе ниже
INSERT INTO `tbl_contact`
(
`fname`,
`code`,
`contact`,
`m_address`,
`created_date`,
`modified_date`,
`row_status`
)
SELECT * FROM
(
SELECT
'LULU CENT' AS `fname`,
'sdfjg' AS `code`,
'NA' AS `contact`,
'NA' AS `m_address`,
1991-01-01 AS `created_date`,
1990-01-01 AS `modified_date`,
'active' AS `row_status`
)
AS tmp WHERE NOT EXISTS (SELECT `id` FROM tbl_contact WHERE CODE='sdfjg') LIMIT 1
Может ли вы поделиться своим столом состав? Возможно, вы задали эти поля как уникальный ключ. – Jobayer