mysql修改主键

zzh850805 2011-05-04 09:09:51
我 表1中有 字段1和字段2组成主键 现在我想添加个字段3 然后主键有字段1,2,3一起组合而成。怎样写成SQL语句。
如果要删除约束,我该怎么查看这个约束名 删掉他
...全文
4531 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
aa101239 2011-11-03
  • 打赏
  • 举报
回复
alter table xs drop primary key; (xs)表名
zzh850805 2011-05-04
  • 打赏
  • 举报
回复
谢谢了 你们说的 可以用
wwwwb 2011-05-04
  • 打赏
  • 举报
回复
你的真实建表语句是什么,从你建表语句看,没有自增字段
zzh850805 2011-05-04
  • 打赏
  • 举报
回复
Query : ALTER TABLE `test`.`quest` DROP PRIMARY KEY
Error Code : 1075
Incorrect table definition; there can be only one auto column and it must be defined as a key
Execution Time : 00:00:00:000
Transfer Time : 00:00:00:000
Total Time : 00:00:00:000
wwwwb 2011-05-04
  • 打赏
  • 举报
回复
ALTER TABLE `quest_need_monster` DROP PRIMARY KEY
提示什么

SELECT * FROM information_schema.`TABLES` a
INNER JOIN `KEY_COLUMN_USAGE` b ON a.TABLE_NAME=b.TABLE_NAME
WHERE a.TABLE_NAME like '%`quest_need_monster`%'AND CONSTRAINT_NAME='PRIMARY'
结果是什么
zzh850805 2011-05-04
  • 打赏
  • 举报
回复

Create Table

CREATE TABLE `quest_need_monster` (
`quest_id` int(11) NOT NULL COMMENT '任务ID',
`monster_id` int(11) NOT NULL COMMENT '怪物ID',
`monster_count` int(11) NOT NULL COMMENT '怪物数量',
PRIMARY KEY (`quest_id`,`monster_id`),
KEY `fk_quest_need_monster_2_monster` (`monster_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='任务怪物关联'
把原本quest_id,monster_id 主键取消了 添加个主键重新组成复合组建
wwwwb 2011-05-04
  • 打赏
  • 举报
回复
你的SQL语句,提示什么
zzh850805 2011-05-04
  • 打赏
  • 举报
回复
不行啊 取消不了原来的主键
wwwwb 2011-05-04
  • 打赏
  • 举报
回复
取得约束名
SELECT * FROM information_schema.`TABLES` a
INNER JOIN `KEY_COLUMN_USAGE` b ON a.TABLE_NAME=b.TABLE_NAME
WHERE a.TABLE_NAME like '%te%'AND CONSTRAINT_NAME='PRIMARY'
wwwwb 2011-05-04
  • 打赏
  • 举报
回复
ALTER TABLE aa DROP PRIMARY KEY
rucypli 2011-05-04
  • 打赏
  • 举报
回复
添加字段3 alter table tbname add 字段3 varchar(10);
删除主键 alter table tbname drop primary key;
添加主键 alter table tbname add primary key(字段1,2,3);

不建议这种主键 主键还是最好自增id
gungod 2011-05-04
  • 打赏
  • 举报
回复
DROP INDEX用于取消索引。这是MySQL相对于标准SQL的扩展。请参见13.1.7节,“DROP INDEX语法”。

· 如果列从表中被取消了,则这些列也从相应的索引中被取消。如果组成一个索引的所有列均被取消,则该索引也被取消。

· 如果一个表只包含一列,则此列不能被取消。如果您想要取消表,应使用DROP TABLE。

· DROP PRIMAY DEY用于取消主索引。注释:在MySQL较早的版本中,如果没有主索引,则DROP PRIMARY KEY会取消表中的第一个UNIQUE索引。在MySQL 5.1中不会出现这种情况。如果在MySQL 5.1中对没有主键的表使用DROP PRIMARY KEY,则会出现错误信息。

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧