我刚刚使用MySQL mysqldump工具生成DDL,因此我可以在另一台机器上创建理智的数据库。当我尝试在目标机器上运行它时,我收到此错误:
脚本行:28表格中不存在关键列'friendPrimaryKeyInYour Phone'
运行此声明:
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `friend` (
`id` bigint(20) unsigned NOT NULL,
`dependentId` bigint(20) unsigned NOT NULL,
`friendPrimaryKeyInYourPhone` int(10) unsigned NOT NULL,
`friendNameInYourPhone` varchar(45) NOT NULL,
`date` datetime NOT NULL,
PRIMARY KEY (`id`,`friendPrimaryKeyInYourPhone`) USING BTREE,
UNIQUE KEY `idx_dependendentId_phonePk` (`dependentId`,`friendPrimaryKeyInYour
Phone`),
KEY `idx_phonePk` (`friendPrimaryKeyInYourPhone`),
KEY `idx_dependentId` (`dependentId`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
知道MySQL如何生成这个DDL,几秒后认为它无效吗?
答案 0 :(得分:3)
friendPrimaryKeyInYour Phone
中有一个空格 - 在错误消息和SQL中都有。必须是复制/粘贴(或某种换行)错误,将其删除并重试。
答案 1 :(得分:2)
问题似乎在于额外的空间......
我不确定MySQL是否有问题。是文本编辑器还是使用其他一些创建此工件的工具?
编辑:在查看更多详细信息时,字段名称的这一分割发生在第79个字符...许多文本演示工具使用80作为标准,这似乎证实了问题。
建议: