使用外键约束插入数据库

时间:2013-12-01 22:55:12

标签: mysql sql database database-administration

我遇到以下问题:

我有两张桌子(例如)

 Table CARS:
 carID      |      Car Make
 1          |      Honda
 2          |      Misubishu

其中carID是主键

 Table MODELS
 modelID     |      mName       |      carID
 1           |      accord      |       1

其中modelID是主键,carID是外键(到CARS)。

现在让我们说我想将本田思域插入到MODELS表中。

我会插入思域并从CARS表中获取与本田相匹配的carID

我一直在玩INSERT SELECT语句,但是我无法让它工作;我一直在做这样的事情:https://dba.stackexchange.com/questions/46410/how-do-i-insert-a-row-which-contains-a-foreign-key

这似乎正是我想要的,但我仍然得到关于f-key的sqlexceptions。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果modelID是auto_incremented,你可以这样做:

INSERT INTO models(mName,carID)
SELECT 'Civic',carID
FROM cars 
WHERE `Car Make` = 'Honda';

sqlfiddle demo

如果modelID不是auto_incremented,你也必须传递id。