php - 无符号非空 mySql

标签 php mysql wordpress

我只是想知道,您是否必须在表中的外键后面添加 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/

相关文章:

MySQL - 按父位置和子位置排序

php - 如何检查产品是否在售 - WooCommerce

wordpress - 我正在尝试将 Composer 与 WordPress 插件一起使用

php - php 中的 floatval 和 (float) 有什么区别?

mysql - 这个简单的 sql 模式应该如何在 Mongodb 中建模

mysql - 具有大表(+- 5.000.000 行)的树数据的数据库设计

html - Flexbox 等高(具有不同大小的内容)不起作用

javascript - 在 PHP 的 where 子句中使用 span 文本

php - youtube api v3.0 基于浏览器的 php 上传

php - 从/etc/redhat-release 中操作字符串