日期:2014-05-16  浏览次数:20763 次

mysql高手们,指点下吧,mysql给一个表连接一个主键列!
我的mysql表是:
create table `ec_core_order_log` (
`tx_logistic_id` varchar(50) not null,
`create_time` timestamp not null default current_timestamp comment '创建时间',
`update_time` timestamp null comment '支付成功/支付失败时间',
`payAmount` varchar(10) comment '支付金额',
`payTime` varchar(100) comment '支付时间',
`unitId` varchar(50) comment 'PDA发起支付时传入的网点id',
`employeeId` varchar(50) comment 'PDA发起支付时传入的员工号',
`remark` varchar(512), 
primary key (`tx_logistic_id`)
) engine=InnoDB default charset=utf8

现在我想做的是,给这个表中添加一个id列,Id列自增,int类型,并且与tx_logistic_id列,联合作为主键,求教,这个 sql怎么写。。。

------解决方案--------------------
id本身就是自增的


primary key (id,`tx_logistic_id`)这样和primary key (id)基本没有区别


------解决方案--------------------
SQL code
alter table `ec_core_order_log` DROP PRIMARY KEY,ADD id int auto_increment ,ADD PRIMARY KEY (id,tx_logistic_id);

------解决方案--------------------
create table `ec_core_order_log` (
 `tx_logistic_id` varchar(50) not null,
 `create_time` timestamp not null default current_timestamp comment '创建时间',
 `update_time` timestamp null comment '支付成功/支付失败时间',
 `payAmount` varchar(10) comment '支付金额',
 `payTime` varchar(100) comment '支付时间',
 `unitId` varchar(50) comment 'PDA发起支付时传入的网点id',
 `employeeId` varchar(50) comment 'PDA发起支付时传入的员工号',
 `remark` varchar(512),
 primary key (`tx_logistic_id`)
) engine=InnoDB default charset=utf8;

ALTER TABLE `ec_core_order_log` ADD id INT AUTO_INCREMENT,DROP PRIMARY kEY,
ADD PRIMARY KEY (id,tx_logistic_id)