一个关于sqlite报错的问题:no such columns

问题描述 投票:0回答:1

当我在 Windiws PowerShell 中使用 sqlite3 -init ex.sql 时,出现错误:

Parse error near line 6: no such column: ostrich
  le"   , "10"        , 4          UNION     SELECT "ostrich"     , "500"
                                      error here ---^

在我的 ex.sql 中,只是编码

CREATE TABLE animals AS
    SELECT "dog" AS name, "20" AS weight, 4 AS legs  UNION
    SELECT "cat"         , "10"         , 4          UNION
    SELECT "penguin"     , "300"        , 2          UNION
    SELECT "t-rex"       , "12000"      , 2          UNION
    SELECT "parrot"      , "6"          , 2          UNION
    SELECT "crocodile"   , "10"         , 4          UNION
    SELECT "ostrich"     , "500"        , 2;

拜托,我刚刚开始学习SQL,这个问题已经困扰我很长时间了

sqlite
1个回答
0
投票

简而言之,所使用的“鸵鸟”被视为列名称。 “鸵鸟”(与“鸵鸟”相对)将被视为字面值。

按照:-

字符串常量是通过将字符串括在单引号(')中形成的。字符串中的单引号可以通过将两个单引号放在一行中进行编码 - 就像 Pascal 中一样。不支持使用反斜杠字符的 C 样式转义,因为它们不是标准 SQL。 https://www.sqlite.org/lang_expr.html#literal_values_constants_

你想要的是使用:-

CREATE TABLE animals AS
    SELECT 'dog' AS name, '20' AS weight, 4 AS legs  UNION
    SELECT 'cat'         , '10'         , 4          UNION
    SELECT 'penguin'     , '300'        , 2          UNION
    SELECT 't-rex'       , '12000'      , 2          UNION
    SELECT 'parrot'      , '6'          , 2          UNION
    SELECT 'crocodile'   , '10'         , 4          UNION
    SELECT 'ostrich'     , '500'        , 2;





  
© www.soinside.com 2019 - 2024. All rights reserved.