DROP TABLE IF EXISTS `transactions`;
CREATE TABLE `transactions` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`purchase_date` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `transactions` (`purchase_date`) VALUES (NULL)
我孤立我的问题在此代码。 当我运行它,我得到的错误:
[错误在查询3]“字段列表”未知列“PURCHASE_DATE”
任何人的想法?
有插入之间不可打印字符30(RecordSeparator) purchase_date
和'
在INSERT
语句。 只需删除文本('purchase_date')
并通过手工重写它应该罚款。
小生了Nery解决方案时,我得到这个错误。
我有一个BEFORE INSERT
在我的表做了一些与触发NEW.`field_mysql_doesnt_think_exists`
,如果我没有那场传递到一个INSERT语句,然后我会得到
[ERROR in query 3] Unknown column 'field_mysql_doesnt_think_exists' in 'field list'
我只花了一天的大部分时间搞清楚了这一点。 我的问题是一样的:不可见的字符kiboshing查询并返回“未知列”的错误。
我涉水重新进入Windows和使用记事本++移除垃圾解决它。
垃圾怎么会在那里摆在首位? 我想这是因为我做了一些抄袭长期复杂的查询到LibreOffice的作家(我的功能规格文档)的错误,而不是只书签他们在phpMyAdmin或保存在文本编辑器。 从LibreOffice的它们粘贴到查询窗口中,(我认为)垃圾起源。
一旦出现,它坚持像疟疾。 我甚至不能用手工重新输入整个查询摆脱它 - 我不得不把它到记事本++(编码菜单),并显示ANSI和UTF8连击,然后用手取出垃圾。
这项工作完成,查询工作。
如果您在构建表结构时粘贴列名称也会发生这种情况。 同样的错误 - 但无法打印/不可见的字符是表结构,而不是查询。
这可能不是帮助别人,但加入这个“万一”,它可以帮助别人。
在我的情况,这是一个不同的解决方案。
我收到大型数据集为Excel CSV文件,并使用(WIL)脚本,将.csv文件转换成可导入.sql文件。 我曾在我的脚本发生错误,从而这两条线没有引用同一个表的名字(我已经硬编码的第一位置,并且忘记更新):
* "INSERT INTO `old_table_name` (`cid`, `date`, etc etc"
* "CREATE TABLE IF NOT EXISTS `":_dbName:"` (etc etc "
我只是改变了第一线,还从变量,瞧获得表名!
* "INSERT INTO `":_dbName:"` (`cid`, `date`, etc etc"
因此,检查您的导入SQL文件的两行。
同样的错误在不同的情景:
当你错过了@符号的变量也会出现这种情况。
SET @myVar1=1; SELECT @myVar1; -- GOOD, correctly prints: 1
SET @myVar1=1; SELECT myVar1; -- BAD, prints: Unknown column 'myVar1' in 'field list'