1050: Table already exists(表已存在)
MySQL含义
要创建的表已经存在。由于存在同名表,CREATE TABLE 失败。
原因
重新创建已有的表;脚本运行了两次;再次应用迁移;另一个对象(视图)使用了相同的名称。
解决方法
使用 IF NOT EXISTS,仅在表不存在时创建:CREATE TABLE IF NOT EXISTS my_table (...); 如果确实要重新创建,先删除:DROP TABLE IF EXISTS my_table; 列出现有表:SHOW TABLES; 使迁移可以安全地重复运行(幂等)。
同一数据库的其他条目
- 1292Incorrect datetime value / truncated incorrect value(日期时间值不正确 / 截断了不正确的值)
- 1406Data too long for column(列的数据过长)
- 1071Specified key was too long; max key length is 767 bytes(指定的键过长;最大键长度为 767 字节)
- 1051Unknown table 'x'(未知表 'x')
- 1091Can't DROP 'x'; check that column/key exists(无法 DROP 'x';请检查该列/键是否存在)
- 1093You can't specify target table 'x' for update in FROM clause(不能在 FROM 子句中指定要更新的目标表 'x')
- 1305PROCEDURE does not exist(PROCEDURE 不存在)