Aug 25

MySQL 建立外键约束的语法太晦涩难懂了, 不得不记下笔记.

1. 在建表时建立外键

CREATE TABLE table_s (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `column_name_from` int(11) NOT NULL,
  `name` varchar(256) NOT NULL,
  PRIMARY KEY (`id`),
  INDEX k_name (`column_name_from`),
  CONSTRAINT fk_name FOREIGN KEY(column_name_from) REFERENCES other_table_name(column_name_to) ON UPDATE CASCADE
) engine=innodb;

2. 对已有的表增加外键

alter table table_name add constraint fk_name foreign key (column_name_from) references other_table_name(column_name_to) on update cascade;

外键是”fk_name”, 如果 column_name_to 没有索引, 则会建立一个名为”fk_name”的索引;

3. 删除外键

先删除外键, 再删除索引.

alter table table_name drop foreign key fk_name;
alter table table_name drop key fk_name;

如果在删除外键之前删除索引, 会提示 #1025 – Error on rename of ‘./abc/#sql-fa9_2a9a1′ to ‘./abc/table_name’ (errno: 150)

4. 查看外键的名字

show create table table_name;

5. 建立索引

create index index_name on table_name (column_name);

alter table table_name add index index_name (column_name);

Related posts:

  1. MySQL”海量数据”查询性能分析
  2. MySQL 查询使用 Group By 的注意点
  3. Linux下编译安装Apache/Lighttpd+PHP+MySQL
  4. JavaScript+CSS实现数据表格条纹
  5. Google退出中国, 搜狗最开心

Written by ideawu at 2009-08-25 19:13:11 | Views: 4018 | tags:

Leave a Reply

必须登录, 或者浏览器开启JavaScript支持才可以评论!


网站空间,免费试用