這篇文章會記錄一些關於mysql使用上容易出錯的地方。
問題複述:
create table `my_table` (
`a` char(20) ,
`b` char(20) ,
`c` char(20)
) engine=innodb default charset=utf8;
create unique index uni_abc on my_table (a, b, c);
insert into my_table (a,b,c) values (1,2,null); --- ok
insert into my_table (a,b,c) values (1,2,null); --- ok(預期會插入失敗,但是成功了)
解決方法:
將c
字段設定為不允許為null
並且設定預設值就可以了。
問題複述:
create table `my_table` (
`name` char(20) not null
) engine=innodb default charset=utf8;
create unique index uni_name on my_table (name);
insert into my_table(name) values ('abc'); --- ok
insert into my_table(name) values ('abc'); --- fail(預期會插入成功,但是卻失敗了)
解決方法:
建表時指定大小寫敏感
create table `my_table` (
`name` char(20) character set utf8 collate utf8_bin not null
) engine=innodb default charset=utf8;
參考文章:
未完待續。
mysql使用distinct注意事項
1.mysql使用distinct的使用 一定要位於 查詢的最前端 例項 select distinct sla code,id,sla type,sla place,sla rank 如果放在後面則報錯如 2.select t d,sla type,sla place,sla rank disti...
mysql索引 使用注意事項
索引使用缺點 雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如對表進行insert,update和delete。因為更新表時,mysql不僅要儲存資料,還要儲存一下索引檔案 建立索引會占用磁碟空間的索引檔案。一般情況這個問題不太嚴重,但如果你在要給大表上建了多種組合索引,索引檔案會膨脹很寬 ...
mysql索引使用注意事項
單值索引 create index 索引名 on 表名 需要建立索引的字段 復合索引 create index 索引名 on 表名 需要建立索引的字段,需要建立索引的字段,1 不要在索引列上做任何操作 1 不要在索引列使用函式 select sql no cache from a where nam...