在 SQL 中使用外键

沙泽布·曼吉莱

我想使用“地址”表中的“邮政编码”,它是那里的主键,作为“客户”表中的外键。我做了同样的事情,从租金表中获取 'RentalID' 作为 'customers' 表中的外键,但是,当我尝试对 'Postcode' 执行相同操作时,它给了我这个错误:“请检查表上的外键约束父表地址的客户”。

请注意,我使用的是 khanacademy.org 上的在线 SQLite IDE

这是我的代码:

CREATE TABLE rentals 
( RentalID INTEGER PRIMARY KEY, CarRegistration TEXT, DateHired TEXT, 
DateReturned TEXT); 

INSERT INTO rentals VALUES (  1, "J986NDX", "12.2.94", "25.8.94"); 
INSERT INTO rentals VALUES (  2, "K788NRT", "1.3.95", "1.4.96"); 
INSERT INTO rentals VALUES (  3, "L346NDS", "2.4.96", ""); 
INSERT INTO rentals VALUES (  4, "J986NDX", "15.9.94", "14.9.95"); 
INSERT INTO rentals VALUES (  5, "M411NGT", "15.9.95", "1.2.96");  

CREATE TABLE customers (CustomerID INTEGER, CustomerSurname TEXT, 
Customerinitial TEXT, Companyname TEXT, Postcode TEXT, RentalID INTEGER , 
PRIMARY KEY(CustomerID, RentalID), FOREIGN KEY (RentalID) REFERENCES 
rentals(RentalID), FOREIGN KEY (Postcode) REFERENCES address(Postcode));

INSERT INTO customers VALUES ( 153, "Nazarali", "N", "MF Plastics", "DB5 
3ER", 1); 
INSERT INTO customers VALUES ( 153, "Nazarali", "N", "MF Plastics", "DB5 
3ER", 2); 
INSERT INTO customers VALUES ( 187, "Brown", "L", "MF Plastics", "DB5 3ER", 
3); INSERT INTO customers VALUES ( 287, "Pinner", "M", "Took Ltd", "DB6 
8YU", 4); INSERT INTO customers VALUES ( 287, "Pinner", "M", "Took Ltd", 
"DB6 8YU", 5);  

CREATE TABLE address (Postcode TEXT PRIMARY KEY, town TEXT);  
INSERT INTO address VALUES ( "DB5 3ER", "Derby"); 
INSERT INTO address VALUES ( "DB6 8YU", "Derby");

如何解决这个问题?

沙泽布·曼吉莱

基本上我所要做的就是在创建客户表之前创建地址表并创建邮政编码值,因为您不能拥有当前不存在的属性的外键,因为没有约束。父表必须在客户表之前创建。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在SQL中使用外键更新表

来自分类Dev

使用SQL / ORACLE的外键

来自分类Dev

如何在SQL Server中的表中使用外键ID?

来自分类Dev

如何在 SQL Server 中使用触发器更新外键引用表?

来自分类Dev

SQL外键外键

来自分类Dev

SQL Server:使用条件创建外键

来自分类Dev

Oracle SQL Developer-使用外键

来自分类Dev

使用外键检索数据的SQL

来自分类Dev

使用外键的SQL语法错误

来自分类Dev

使用 Hibernate POJO 的 SQL 外键错误

来自分类Dev

SQL外键参考

来自分类Dev

SQL约束:外键

来自分类Dev

在Microsoft SQL Server中使用复合键

来自分类Dev

外键上的外键-SQL Server

来自分类Dev

SQL Server:使用多列外键创建表

来自分类Dev

ElasticSearch使用外键映射两个SQL表

来自分类Dev

在Flask SQL-Alchemy上使用外键引用值

来自分类Dev

SQL Server-使用递归外键级联删除

来自分类Dev

在SQL上使用外键与主键进行关联的方法

来自分类Dev

使用外键将XML数据插入SQL表

来自分类Dev

在Flask SQL-Alchemy上使用外键引用值

来自分类Dev

SQL Server:使用外键合并多个表

来自分类Dev

使用SQL有效地反转外键

来自分类Dev

SQL:使用主键和外键引用创建表(

来自分类Dev

SQL / PHP-使用外键将数据插入表

来自分类Dev

使用JOIN和外键插入SQL Server表

来自分类Dev

有没有一种方法可以在Django中使用SQL更新查询来更新外键字段

来自分类Dev

sql与外键表联接

来自分类Dev

SQL-间接外键