sql修改表的常见问题

关于修改表的主键,从一个到两个,会有multiple primary key的错..折腾到两点也不知道为啥,然后就删掉再建了...


然后关于修改列的属性...

想从int修改到varchar

然后这么写alter table trian_serial alter column id varchar(45),就报了

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'varchar(45)' at line 2的错...

原答案..https://zhidao.baidu.com/question/129302524.html

然后想23个赞应该不会有错啊...然后找了其他答案...

改成alter table train_serial alter id varchar(45)就可以了..

然后发现23个赞的下面有个说法是如果原列上有约束的话就会报错..虽然和他说的报错信息不一样..但是我觉得  可能  是这个原因吧..


bisides

CREATE TABLE IF NOT EXISTS `ticket`.`schedule` (
 `train_serial` INT NOT NULL,
  `start_place` VARCHAR(45) NOT NULL,
  `end_place` VARCHAR(45) NOT NULL,
  `start_time` DATETIME NOT NULL,
  `end_time` DATETIME NOT NULL,
  `status` VARCHAR(45) NULL,
  `passid` INT NOT NULL,
   foreign key (train_serial) references train_serial(id),
  PRIMARY KEY (`train_serial`,`start_place`,`start_time`)
 ) default charset utf8

这么写会有

Cannot add foreign key constraint

的错误。..

是因为train_serial的属性和被引用的表中的主键属性不同...真是..太智障了...


btw..在写作业的时候..还发现如果不close掉fileWriter的话就不会写入文件...因为没有flush

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值