【问题标题】:EXPLAIN Failed. 3706: (-3706)Syntax error: expected something between ')' and ','解释失败。 3706: (-3706) 语法错误:预期在 ')' 和 ',' 之间
【发布时间】:2020-01-25 07:24:31
【问题描述】:

我在 StackOverflow 上看到过这个错误,但在我使用的上下文中没有。我对 Teradata 比较陌生,这种行为让我陷入了困境。这是有效的代码:

INSERT INTO test_table (this, that) VALUES (1, 2);

这是引发错误的代码:

INSERT INTO test_table (this, that) VALUES (1, 2), (3, 4);

这让我非常困惑,因为 Teradata 文档有以下示例:

INSERT INTO cities VALUES (2, 'San Jose'), (3, 'Oakland');

有人可以告诉我我在这里缺少什么吗?谢谢!

【问题讨论】:

  • 你试过了吗:INSERT INTO test_table VALUES (1, 2), (3, 4); 只是猜测...不知道 teradata
  • 是的,我试过移动空间。相同的行为:/
  • 对不起,空格?我已经从声明中删除了列名...另外,请您给我们您正在谈论的链接:“Teradata docs has the following example”如果它在线... :)
  • 你是使用github项目还是使用teradata.com销售的产品?您的声明确实记录在前者,但我认为后者不支持它。至少这是我在 docs.teradata.com 上找到的?

标签: sql teradata


【解决方案1】:

Teradata 仅允许您使用单个 values 插入一条记录。您可以在 syntax diagram 中看到 insert 的这一点——没有“后循环”。

两次插入是一种简单的解决方法:

INSERT INTO test_table (this, that)
    VALUES (1, 2);
INSERT INTO test_table (this, that)
    VALUES  (3, 4);

【讨论】:

    猜你喜欢
    • 2020-05-14
    • 2019-05-08
    • 2020-10-10
    • 2021-02-17
    • 2017-08-28
    • 2016-07-23
    • 2017-01-10
    • 2019-01-27
    • 1970-01-01
    相关资源
    最近更新 更多