gpt4 book ai didi

phpMyAdmin 在批量 INSERT 语句中隐藏语法错误?

转载 作者:行者123 更新时间:2023-11-29 00:22:15 25 4
gpt4 key购买 nike

当我尝试使用 phpMyAdmin 导入大型 .sql 文件时,它没有报告语法错误。每次它只返回“1 个命令已成功执行”。然后我查看表格,发现它是空的。

如果我手动编辑 .sql 文件并用 START TRANSACTION;COMMIT; 语句包装它,它会报告错误,如预期。

我担心可能某处配置错误。我实际使用的数据是 secret 的,但我能够使用以下测试数据重现该问题:

架构:

CREATE TABLE IF NOT EXISTS `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`field1` int(11) NOT NULL,
`field2` int(11) NOT NULL,
`field3` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

no_error_message.sql 的内容:

INSERT INTO `test`(field1,field2,field3) VALUES
(1,2,3),
(1,2,2),
(1,2,3),
(1,2,2),
-- ... around 20,000 similar rows
(1,,3),
-- oops syntax error
(1,2,5);

只有像这样的 sql 文件非常大时才会发生。

  • phpMyAdmin 版本 4.0.4.1
  • php 版本 5.2.14
  • MySQL 服务器版本 5.1.69

数据是使用 phpMyAdmin 中的导入功能导入的。就像我说的,当我将其放入事务中时,它会神奇地注意到语法错误。这只是一个错误(如果是,在哪个包中,它是否发生在最新版本中),还是这里发生了其他事情?在涉及数据库时,我往往过于偏执。

我无法在 Google 搜索中找到任何有用的信息。

最佳答案

我不能告诉你为什么它只在“交易”下报告错误,但我建议你对你的 .sql 文件运行某种验证脚本来检查 VALUE 列表中丢失或无效的条目,然后将其提供给 phpMyAdmin。此外,所有内容都在一个 INSERT 下,还是分解为多个 INSERT,每个语句具有合理数量的 VALUE 集?您可能会看到它是否随后开始报告较小数据组(例如,一次几百组)的语法错误。

关于phpMyAdmin 在批量 INSERT 语句中隐藏语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20660047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com