请将MYSQL的PRIMARY KEY 替换为UNIQUE NOT NULL

来源:互联网 发布:快搜 知乎 编辑:程序博客网 时间:2024/06/06 01:38

MYSQL 的PRIMARY KEY 不能重命名,在调试程序时,遇到DUPLICATE KEY 错误时会给调试程序造成极大的困扰,所以建议在工程项目中,使用UNIQUE INDEX NOT NULL 替换PRIMARY KEY。

题外话:MYSQL与ORACLE相比,很多地方并不完善,需要程序员更多的用心做一些额外的事情。

下面这个SQL 可以自动生成你想要的脚本,实现将现有的业务表里的主键替换为唯一索引。

select    concat(' alter table ', table_schema, '.', table_name  ,' drop primary key , add unique index pk$', table_name, '(', group_concat(column_name order by ordinal_position) , ') ;') new_sql   from information_schema.KEY_COLUMN_USAGE  where table_schema='ayst_share'    and constraint_name='PRIMARY' group by  table_schema, table_nameusage sample : call findobj('pk$user_status_log');  call findcode('user_status_log') ;
0 0