首页 / MYSQL / MySQL名称的主键约束
MySQL名称的主键约束
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL名称的主键约束,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1562字,纯文字阅读大概需要3分钟。
内容图文
![MySQL名称的主键约束](/upload/InfoBanner/zyjiaocheng/888/25bb625d32404ed584b41aeaa7f5c9b7.jpg)
数据定义语句:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id)
)
的价值和目的是什么
约束pk_PersonID主键(P_Id)?
与此相对
主键(P_Id)?
MySql的文档除了this之外并没有说太多.
解决方法:
就像MySQL忽略CONSTRAINT pk_PersonID部分一样.您可以通过创建表然后将其转储或发出SHOW CREATE TABLE Persons进行检查.
我猜想它支持此语法仅是为了与其他SQL Server兼容(但是对于主键和其他本地键则忽略它),并且不存储其信息(约束名称).
但是,对于与外键一起使用,在MySQL中也使用CONSTRAINT关键字.
mysql> CREATE TABLE test.Persons (
-> P_Id int NOT NULL,
-> LastName varchar(255) NOT NULL,
-> FirstName varchar(255),
-> Address varchar(255),
-> City varchar(255),
-> CONSTRAINT pk_PersonID PRIMARY KEY (P_Id)
-> );
Query OK, 0 rows affected (0.50 sec)
server$mysqldump -p test Persons
Enter password:
--
-- Table structure for table `Persons`
--
DROP TABLE IF EXISTS `Persons`;
CREATE TABLE `Persons` (
`P_Id` int(11) NOT NULL,
`LastName` varchar(255) NOT NULL,
`FirstName` varchar(255) DEFAULT NULL,
`Address` varchar(255) DEFAULT NULL,
`City` varchar(255) DEFAULT NULL,
PRIMARY KEY (`P_Id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
这也是测试以证明MySQL不会在任何地方存储约束名称,并且在打印错误时不使用约束名称(如在问题What is the purpose of constraint naming中针对其他SQL服务器所提到的那样:
mysql> insert into Persons (P_Id) values(1);
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> insert into Persons (P_Id) values(1);
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
内容总结
以上是互联网集市为您收集整理的MySQL名称的主键约束全部内容,希望文章能够帮你解决MySQL名称的主键约束所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。