12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
ADADADADAD
mysql数据库 时间:2024-11-26 22:13:51
作者:文/会员上传
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
执行ALTER TABLE增加字段的时候报错:mysql>ALTERTABLEwho_sku_relationADDCOLUMNred_line_priceDECIMAL(10,2)NOTNULLDEFAULT'0.00';ERROR1050(42S01):Table'sms
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
执行ALTER TABLE增加字段的时候报错:
mysql>ALTERTABLEwho_sku_relationADDCOLUMNred_line_priceDECIMAL(10,2)NOTNULLDEFAULT'0.00';ERROR1050(42S01):Table'sms/#sql-ib75227'alreadyexists
报错原因:
在alter table的过程中,MySQL宕机,会在数据目录里存在数据变更的中间表,中间表是以“#sql-”开头的临时表。
临时表不手动删除掉,无法在相应的表上执行 ALTER TABLE 语句。
在数据目录里面查看临时表的信息,找不到 .frm表结构文件和 .ibd数据文件。
$ls-l|grep'#sql-ib75227*'|wc-l
解决方法:
手动创建 .frm表结构文件和 .ibd数据文件,之后删除临时表。
创建一张测试表。
mysql>usetestmysql>createtabletest.tmplikesms.who_sku_relation;QueryOK,0rowsaffected(0.00sec)
将测试表的 .frm 表结构文件拷贝成临时表的 .frm 表结构文件和 .ibd 数据文件。
$cp../test/tmp.frm"#sql-ib75227.frm"$cp../test/tmp.frm"#sql-ib75227.ibd"$ls-l\#sql-ib75227*-rw-r-----1tungstenmysql15007Sep2921:23#sql-ib75227.frm-rw-r-----1tungstenmysql15007Sep2921:25#sql-ib75227.ibd
在数据库中 DROP 临时表,并在原来增加表结构出错的表上执行结构变更。
mysql>droptable`#mysql50##sql-ib75227`;QueryOK,0rowsaffected(0.00sec)mysql>ALTERTABLEwho_sku_relationADDCOLUMNred_line_priceDECIMAL(10,2)NOTNULLDEFAULT'0.00';ERROR1813(HY000):Tablespacefortable'sms/#sql-ib75227'exists.PleaseDISCARDthetablespacebeforeIMPORT.
删除掉数据文件中残留的临时表数据文件。
$ls-l\#sql-ib75227*-rw-r-----1tungstenmysql15007Sep2921:25#sql-ib75227.ibd$rm"#sql-ib75227.ibd"
执行数据库表结构变更
mysql>ALTERTABLEwho_sku_relationADDCOLUMNred_line_priceDECIMAL(10,2)NOTNULLDEFAULT'0.00';QueryOK,0rowsaffected(0.05sec)Records:0Duplicates:0Warnings:0
将本文的Word文档下载到电脑
推荐度:
11-20
11-19
11-20
11-20
11-20
11-19
11-20
11-20
11-19
11-20
11-19
11-19
11-19
11-19
11-19
11-19