我只是想知道,您是否必须在表中的外键后面添加 UNSIGNED NOT NULL ? UNSIGNED 实际上意味着什么?
//产品表
id INT(20) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
order_id INT(10) UNSIGNED NOT NULL,
customer_id INT(10) UNSIGNED NOT NULL
//客户表
id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(25) NOT NULL,
surname VARCHAR(25) NOT NULL
我的外键后面是否必须有UNSIGNED,还是可以将其省略?
此外,我的主键(在客户表中)是否必须与我的外键(在产品表中)命名为相同>) 成为链接,或者如何链接它们?我知道我可以使用联接,但是我在 php 代码或 sql 代码中在哪里执行此操作? phpmyadmin 还是 php 代码?
这是一个 WordPress 插件
感谢任何帮助,但还没有真正完全理解这一点。
最佳答案
给定一个 16 位整数:
signed: -32,768 -> +32,767
unsigned: 0 -> 65,535
如果您不指定符号或空值,则数据库可以自由选择两者的默认值,通常是“有符号”并允许空值。
父记录和子记录中的键名称不必必须相同。但字段 DO 的定义必须完全匹配。如果定义不匹配,则数据库将禁止创建外键。
例如
create table parent (
id int unsigned
);
create table child
bad_fk int signed, // bad FK. cannot have mixed signed/unsigned
ok_fk int unsigned, // ok, data type definitions match exactly.
horrible_fk varchar(16) // total mismatch on type definitions
);
关于php - 无符号非空 mySql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27491804/