MySQL排坑3 改变表结构

MySQL的坑真不是一般的多。

需求是,原来的表:ID(自增列,主键)、列1、列2,希望去掉ID列,把列1列2作为联合主键。这里我用了一种比较繁琐但容易理解的方法。因为MySQL中select into语句莫名其妙的不好用,我只能先建表再插入值。

建一个和最终目标结构一致的临时表(不用care我的外键约束,具体问题具体分析):

create table temp1(
words varchar(100) not null,
hs int not null,
primary key (words,hs),
foreign key (hs) references hs_category (hs)
);

把原来表这两列的所有值放进来:

insert into temp1(words,hs)
select words,hs from lookup;

其实现在删掉旧表就已经搞定了,但我希望新表的名字和旧表一样,所以还要麻烦一下。

# 删掉旧表
drop table lookup;

然后再从临时表转移到最终的新表:

create table lookup(
words varchar(100) not null,
hs int not null,
primary key (words,hs),
foreign key (hs) references hs_category (hs)
);

insert into lookup (words,hs) select words,hs from temp1;

drop table temp1;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值