打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
[MySQL]mysql主键(Primary key),外键(references key),unique key设置
看一下下面的sql代码就可以了:
DROP TABLE IF EXISTS `Program_Release`;
CREATE TABLE `Program_Release` (
`id` mediumint(8) unsigned NOT NULL auto_increment,
`prog_id` mediumint(8) unsigned NOT NULL default '0',
`name` char(15) collate utf8_bin NOT NULL default '',
-- 主键
PRIMARY KEY (`id`),
-- unique键
UNIQUE KEY `name` (`name`),
-- 外键
KEY `FK_Program_Release_1` (`prog_id`),
CONSTRAINT `FK_Program_Release_1` FOREIGN KEY (`prog_id`) REFERENCES `Program` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

mysql只有InnoDB这个引擎支持外键。

在表建好之后设置外键的方法:
ALTER table IC_Release add foreign key(ic_id) references IC(id) on delete restrict on update restrict;
设置unique键的方法:
ALTER TABLE `Branch` ADD UNIQUE (`name`);
---------------------------------------------------------------
我现在有两个字段不能重复一个ID,一个name,id设置成了自动增长,怎么才能把name设置成不能重复???

下面那个不行:
CREATE TABLE tb_department (
  id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
  dt_name char(10),
  dt_createTime varchar(20),
  dt_bz varchar (50)
  UNIQUE(dt_name)
) AUTO_INCREMENT = 100;
回答:
不能放在这里,要单独的一个建立索引的语句才行,例如:
create unique index idx_num on tb_department (dt_name);
-----------------------------------------------------------------
原有一unique索引AK_PAS_Name(PAC_Name)在表tb_webparamcounter中,

然后我执行以下sql修改索引
alter   table   tb_webparamcounter   drop   index   AK_PAS_Name;
alter   table   tb_webparamcounter   add   UNIQUE   AK_PAS_Name(PC_ID,PAC_Name);

这一段执行成功后,我向表里添加了一条新数据,再加另一条时发现索引的逻辑不对,还需要再加一个字段进去,于是执行
alter   table   tb_webparamcounter   drop   index   AK_PAS_Name;
alter   table   tb_webparamcounter   add   UNIQUE   AK_PAS_Name(PC_ID,PAC_Name,PAC_Value);

此时提示
1025-Error   on   rename   of   '.\hotelweb\#sql-e84_3 '   to   '.\hotelweb\tb_webparamcounter '(errno:150)

为什么会出这个错,如何解决?我现在一般情况下不能把表中数据导出,表中数据有用不能drop表。
回答:
在google查到解决方法,原来其中的PC_ID是FOREIGN   KEY,必需先drop   FOREIGN   KEY,再重做上一步才行。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MySQL索引操作命令(创建索引、重建索引、查询索引、删除索引)总结
mysql添加索引(建表之后)
MySQL索引的查看创建和删除
mysql索引
mysql中key 、primary key 、unique key 与index区别
MySQL表的约束
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服