mysql - 在 SQL Xampp 中创建连接
问题描述
我正在尝试在我的数据库表客户和员工之间创建连接。但是得到一个错误: Can't create table staff_db
。customer_orders
(错误号:121“写入或更新时重复键”)。
CREATE TABLE staff(
staff_id int(12) not null,
staff_name varchar(20),
staff_address varchar(32),
staff_department varchar(20),
PRIMARY KEY (staff_id)
);
CREATE TABLE customers(
customer_id int(12) not null,
customer_name varchar(20),
customer_address varchar(32),
customer_product varchar(25),
staff_id int(12) not null,
FOREIGN KEY staff_fk(staff_id) REFERENCES staff(staff_id),
PRIMARY KEY (customer_id)
);
CREATE TABLE customer_orders(
customer_id int(12) not null,
staff_id int(12) not null,
FOREIGN KEY customer_fk(customer_id) REFERENCES customers(customer_id),
FOREIGN KEY staff_fk(staff_id) REFERENCES staff(staff_id),
PRIMARY KEY (customer_id,staff_id)
);
解决方案
在您的 customer_orders 表中,您将外键命名为“ FOREIGN KEY staff_fk (staff_id) REFERENCES staff (staff_id) ”,就像您的客户表中的“ FOREIGN KEY staff_fk (staff_id) REFERENCES staff (staff_id) ”一样。名称必须是唯一的。将名称更改为两者之一,您的问题通常会得到解决。
推荐阅读
- apache - Certbot 安装后未找到加密证书
- websocket - 如何将一系列可观察对象合并为一个。抛出错误“可观察”类型上不存在属性“管道”
[]' - jquery - 执行另一个 ajax 请求后 Ajax 请求不起作用
- ffmpeg - 不支持编解码器 h264_cuvid
- python - 为什么我在提供访问令牌时收到未经授权的代码 (401)?
- angular - Gtk 消息:10:59:42.836:GtkDialog 映射没有临时父级。这是不鼓励的。PID 16131 收到地址的 SIGSEGV:0x10
- python - 多次调用方法时,使用 django rest 序列化程序时缺少一些数据?
- python - 桶时间超过 24 小时时钟,并汇总每个桶的数量
- mysql - 如何在laravel mysql中获取加入和辞职日期内的员工名单,包括空日期
- php - 检查自定义搜索中的帖子类型以获取 Woocommerce 产品属性