【问题标题】:unexpected error 1054 in sqlsql中出现意外错误1054
【发布时间】:2013-11-14 16:58:18
【问题描述】:

在表设置后,我突然想起通过添加一列来更新它并将所有相同的值分配给该列。所以我在 Workbench 上写了这样的查询

ALTER TABLE sthebc3_cle ADD COLUMN Species char(30) AFTER Genome_ACC;
SET SQL_SAFE_UPDATES=0;
UPDATE cle.sthebc3_cle
SET Species='StHe';

但它报告了类似的错误

error 1054: unknown column "Species" in "field list

我在ALTER 之后检查了表,新列“物种”确实已添加到该列中,并且值为 NULL。

怎么会报错?

【问题讨论】:

  • 只是为了确保您在 alter 语句中使用数据库 cle?您可能没有在测试环境中创建列?
  • 是的。这是。我试图删除“cle”。还是不行
  • 如果你运行 SELECT Species FROM sthbec3_cle WHERE Species IS NULL 你会得到一个行列表?
  • 通过添加 USE cle 解决了。这很奇怪,但它仍然有效。谢谢你。我对你所说的测试环境有疑问。由于我尝试将 cle 模式中的两个表 UNION 到 VIEW 中,它再次报告相同的错误。 (这两个表的列完全相同)
  • 这样的脚本USE cle; CREATE VIEW all_cle AS (SELECT Species, Genome_ACC, CLE_start, CLE_end, CLE_domain FROM cowpea_cle) UNION (SELECT Species, Genome_ACC, CLE_start, CLE_end, CLE_domain FROM sthebc3_cle);

标签: mysql alter-table


【解决方案1】:

您需要确保当前会话是您想要的数据库。 MySQL 中始终有一个选定的数据库。

如果您想 100% 确定您使用的是哪个数据库,请始终输入nameofthedatabase.tablename

为了桌子

ALTER TABLE cle.sthebc3_cle ADD COLUMN Species char(30) AFTER Genome_ACC;
SET SQL_SAFE_UPDATES=0;
UPDATE cle.sthebc3_cle
SET Species='StHe';

供你查看,试试这个

USE cle; 
CREATE VIEW all_cle AS 
(SELECT Species, Genome_ACC, CLE_start, CLE_end, CLE_domain 
  FROM nameofdatabase.cowpea_cle) 
UNION 
(SELECT Species, Genome_ACC, CLE_start, CLE_end, CLE_domain 
 FROM nameofdatabase.sthebc3_cle);

【讨论】:

  • VIEW 仍然不起作用。 cowpea_cle 和 sthebc3_cle 都在 cle 数据库中。所以我用“cle”替换了“nameofdatabase”。但是,错误代码:1054。“字段列表”中的“物种”列未知。
  • 你在cle.cowpea_cle中创建了列吗?
  • 是的,我终于让它工作了。非常感谢。很有帮助:)
猜你喜欢
  • 2011-07-17
  • 1970-01-01
  • 2020-02-01
  • 2012-10-21
  • 1970-01-01
  • 1970-01-01
  • 2013-07-06
  • 1970-01-01
  • 2011-07-15
相关资源
最近更新 更多