我想创建两个表。practice
有一个AUTO_INCREMENT
附件并且是一个PRIMARY KEY
. 具有作为引用continued
的 id 实体continued_id
存在的 id 实体。Mysql 可以正常执行下面的代码,直到第 19 行,我收到 1364 错误,说明没有默认值。FOREIGN KEY
practice(user_id)
continued_id
我很困惑。我认为user_id
,哪个 auto_increments,它是 PK,将具有定义值 1、2、3...我认为这continued_id
相当于user_id
,因此它的默认值为 1?也许我误解了PK和FK在sql中的实际工作方式?
错误:
20:03:02 INSERT INTO continued(hobby) VALUES("Tennis") Error Code: 1364. Field 'continued_id' doesn't have a default value 0.000 sec
CREATE TABLE practice(
user_id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
user_name VARCHAR(60) NOT NULL,
user_real_name VARCHAR(60) NOT NULL
);
CREATE TABLE continued(
continued_id INT NOT NULL,
FOREIGN KEY(continued_id)REFERENCES practice(user_id),
hobby VARCHAR(25) NOT NULL
);
INSERT INTO practice(user_name,user_real_name)
VALUES("KittenKing","Henry");
INSERT INTO practice(user_name,user_real_name)
VALUES("DogDictator","Mary");
INSERT INTO practice(user_name,user_real_name)
VALUES("HamsterHam","Denver");
INSERT INTO continued(hobby)
VALUES("Tennis");
INSERT INTO continued(hobby)
VALUES("Hockey");
INSERT INTO continued(hobby)
VALUES("Spear Hunting");
SELECT * FROM practice,continued;