这是我创建表格的方式:
CREATE TABLE IF NOT EXISTS countries ( id INTEGER PRIMARY KEY, name TEXT UNIQUE)
CREATE TABLE IF NOT EXISTS providences ( id INTEGER PRIMARY KEY, name TEXT UNIQUE, country_id INTEGER, FOREIGN KEY( country_id ) REFERENCES countries( id ) )
创建表时没有任何错误。
现在我需要插入一个国家/地区,它会被分配ID 1
INSERT INTO countries( name ) VALUES('sweden')
现在我想向我的国家插入一些天意:
INSERT INTO providences( name, country_id ) VALUES('Lappland', 1 )
INSERT INTO providences( name, country_id ) VALUES('Norrbotten', 2 ) <-- Oops! Non-existing country_id!
两个上帝都被插入但我期望只插入country_id = 1的上帝,因为数据库中没有id为2的国家。
我在这里错过了什么吗?
我在Corona SDK中使用的SQL。
答案 0 :(得分:-1)
这对我有用。您需要传入country_id作为值。所以该省的id分别为1和2,而瑞典的country_id为1。
CREATE TABLE IF NOT EXISTS countries ( id INTEGER PRIMARY KEY, name TEXT);
CREATE TABLE IF NOT EXISTS providences ( id INTEGER PRIMARY KEY, name TEXT, country_id INTEGER, FOREIGN KEY( country_id ) REFERENCES countries( id ) );
INSERT INTO countries(id ,name ) VALUES(1,'sweden');
INSERT INTO providences( id, name, country_id ) VALUES(1,'Lappland', 1 );
INSERT INTO providences( id, name, country_id ) VALUES(2, 'Norrbotten', 1 );