mysql 笔记(一)
表的定义
// mysql
mysql> insert into Course(CNo,Cname,Cpno,Ccredit) values (7,'数据语言',88,3);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`HOMEWORK`.`Course`, CONSTRAINT `Course_ibfk_1` FOREIGN KEY (`Cpno`) REFERENCES `Course` (`Cno`))
当要删除或者更新一条数据时,由于有外码约束,不可以直接使用delete或者update语句,需先取消外码约束,再进行操作,最后再恢复外码约束。否则,会报错。如图所示:
/*取消外码约束*/
set foreign_key_checks=0;
/*删除或更新数据*/
delete/update from 表名 where 条件;
/*恢复外码约束*/
set foreign_key_checks=1;
新表的创建
现在istester表结构如图:
1.表结构的复制
要创建一个新表istester2,同时使其结构与istest表结构相同,有以下两种方法:
1)
//mysql
create table istester2 as select * from istester where 1=2;
从istester表中查询1=2 (永远也差不)
注:这种方法会将旧表istester中所有内容拷贝过来,但是旧表中的primary key,Extra,auto_increment等属性不会复制,需要自己手动添加。
2)
//mysql
create table is istester3 like istester;
注:这种方式会将旧表isterster中的内容和对应属性拷贝过来。
2.表结构与数据的复制
//mysql
create table istester4 as select * from istester3;
3.复制旧表结构中的3个字段
```sql
create table istester5 as select id,uname,sex from istester3 where 1<>1;
这里的 where 1<>1相当于where 1!=1,写法不同而已。