我在MySQL是新来的。我试图在关系数据库中插入值。我知道,在执行子表之前,必须插入父表。假设我们有一个名为STATE,COUNTRY的表。
START TRANSACTION;
INSERT INTO country (countryName, nationality,countryPrefix)
SELECT * FROM (SELECT 'Togo' AS countryName, 'Togolese' AS nationality, '228' AS countryPrefix) AS tmp
WHERE NOT EXISTS (
SELECT countryName FROM country WHERE countryName = 'Togo'
) LIMIT 1;
SELECT country.idcountry FROM country WHERE country.countryName = 'Togo';
INSERT INTO state (stateName, country_idcountry)
SELECT * FROM (SELECT 'Region Maritime' AS stateName, '12' AS country_idcountry) AS tmp
WHERE NOT EXISTS (
SELECT stateName FROM state WHERE stateName = 'Region Maritime'
) LIMIT 1;
COMMIT;
下面的图片是我遇到的错误的截图。
发布于 2020-04-28 10:25:50
此消息是您试图插入连接表中不存在的数据的消息。
在你的情况下
尝试将12作为county_id_contry插入,这在表国家中不存在。
因此,在添加到状态表之前,必须先在国家表中插入12。
https://dba.stackexchange.com/questions/265978
复制相似问题