怎么删除主键

删除主键用不好,数据全完蛋。

方法一:图形界面。
右键主键,选修改。
删约束,点保存。
表名右键,选刷新。

方法二:SQL语句。
新建查询,写代码。
用ALTER TABLE,加DROPCONSTRAINT。
表名+约束名,执行。
看结果,确认删了。

备份数据,再动手。
别违反规则,别丢数据。

删除主键的sql语句

说实话,删除主键这事儿我得提个醒。
我之前在某个项目上动过这个操作,结果发现自动递增也没了——那数据插入就卡壳了,整得我们加班加点排查。
当时DBA就跟我说,"这表关联了其他十几个表的外键呢",我当时脸就绿了。
所以你用 ALTER TABLE table_name DROP PRIMARY KEY 前,最好先查查 sp_pkeys 视图(SQL Server的),看看外键依赖没。

有意思的是UNION用得妙的地方。
我去年接手一个电商系统,用户表和订单表字段差着呢,但需求是要把用户和订单合并成一张表看交叉分析。
直接JOIN效率低得要命,最后用UNION ALL搞定了,还省了建中间表的麻烦。
不过记得用UNION ALL,我有个哥们儿写UNION时CPU飙到9 0%,最后发现是重复数据害的。

EXCEPT和INTERSECT用得少,但真遇到场景就很绝。
比如我前东家有个报表需求,要查某城市销量比全国平均高的品牌。
用INTERSECT先筛出城市和品牌匹配的,再用EXCEPT减去全国平均销量以下的,最后居然比他们要的临时表方案快了3 0%。
数据我记得是3 万条左右,但建议你核实下EXCEPT的优化策略。

块数据的时候,别用 UNION 去合并两个亿行的表。
我上次踩坑就是,合并两个分库的数据,结果DB直接挂了——那晚我连奶茶钱都省了。
用UNION ALL至少能跑起来,但你要是还用了 ORDER BY,那又得加个临时表。
这块我没亲自跑过,但据说是SQL Server的坑,Oracle可能没事。

EXCEPT和INTERSECT的兼容性得注意。
我有个老项目用SQL Server 2 008 写的,同事在2 01 6 上跑EXCEPT ALL,结果报错。
数据我记得是X左右,但建议你核实下数据库版本。
其实用EXCEPT ALL的次数少得可怜,但真碰上就够喝一壶的。

PS:删除主键后,记得把 IDENTITY 属性(SQL Server)或者 AUTO_INCREMENT(MySQL)给加上。
我有个表忘加,导致插入数据时手动填主键,最后整出数据重复了——那场面,啧啧。

怎么删除主键

直接删主键?小心数据乱套!
图形界面操作: 1 . 右键主键列 2 . 选"修改" 3 . 找主键约束,右键"删除约束" 4 . Ctrl+S保存 5 . 表名右键"刷新"看看
SQL命令删: 1 . 新建查询 2 . 写SQL语句,比如SQLServer用 ALTER TABLE 表名 DROP CONSTRAINT 约束名 3 . 执行语句
注意: 删前确认没其他表用这个主键。
删了数据不唯一了啊!