【问题标题】:"Missing closing parenthesis" SQL“缺少右括号”SQL
【发布时间】:2017-10-16 18:58:14
【问题描述】:

在我输入值的行中不断出现错误,它特别出现在“15 Water Road”的“15”上,与 VALUES 相同。错误状态:

“语法错误:缺少右括号”。

当我尝试在 XAMPP 上运行它时,我得到:

“您的 SQL 语法有错误;请查看与您的 MariaDB 服务器版本相对应的手册,了解在 'Water Rd, 0412345678, 750, 3), (2, Smith, 2, 14 Water 附近使用的正确语法路, 0412345679, 400, 4),"

对于 DB 和 SQL 来说非常新,任何帮助将不胜感激。

CREATE TABLE Customer_info (
    CustomerID int,
    LastName varchar(50),
    Username int,
    Address varchar(777),
    PhoneNumber int,
    TotalSpent int,
    OrdersCompleted int
    );

INSERT INTO Customer_info (CustomerID, LastName, Username, Address, PhoneNumber, TotalSpent, OrdersCompleted)
VALUES (1, Mason, 1, 15 Water Rd, 0412345678, 750, 3), (2, Smith, 2, 14 Water Rd, 0412345679, 400, 4),
    (3, Lens, 3, 1 Water rd, 0412345671, 700, 7), (4, Marks, 4, 5 Fire Rd, 0412345672, 100, 1),
    (5, Barr, 5, 19 Fire Rd, 0412345673, 500, 1), (6, Blok, 6, 21 Fire Rd, 0412345674, 1000, 10),
    (7, Pume, 7, 21 Water Rd, 0412345675, 1000, 2), (8, Po, 8, 77 Earth Rd, 0412345676, 1000, 4),
    (9, Adid, 9, 20 Earth Rd, 0412345677, 2, 200), (10, Lew, 10, 6 Earth Rd, 0412345679, 250, 1),
    (11, Chia, 11, 1 Earth Rd, 0412345681, 150, 1), (12, Barrett, 12, 11 Wind Rd, 0412345682, 450, 9),
    (13, James, 13, 9 Wind Rd, 0412345683, 250, 10), (14, Foop, 14, 2 Window St, 0412345684, 200, 10),
    (15, Watch, 15, 8 Window St, 0412345685, 1200, 1), (16, Irving, 16, 11 Window St, 0412345686, 1400, 2),
    (17, Jones, 17, 22 Window St, 0412345687, 1600, 2);

【问题讨论】:

  • 您的所有字符串都没有用引号引起来。 15 Water Rd 应该是 '15 Water Rd'
  • 好吧,首先,SQL 字符串文字包含在' 标记中。恕我直言,如果您不知道这一点,那么在开始编写 SQL 之前,您需要的不仅仅是一两个 StackOverflow 答案。帮自己一个忙:退后一步,阅读语言。
  • @JacobH 哦,我明白了,所以所有具有“varchar”数据类型的东西都必须是反逗号'varchar string'

标签: sql mariadb create-table


【解决方案1】:

您应该用(单)引号将非数字值括起来。

这里的错误有点神秘,但是当数据库引擎试图解析你插入的内容时,它不知道应该如何使用这些字符——例如,逗号是否是字符串与否(记住,它不知道地址字段不可能包含逗号)。

【讨论】:

  • “日期”数据类型也需要用逗号括起来吗?
  • 日期也应该被“引用”,是的。
【解决方案2】:

您没有将 varchar 元素括在引号内,因此地址值被错误读取并引发错误,将姓氏和地址括在引号中并插入这将解决问题

INSERT INTO Customer_info (CustomerID, LastName, Username, Address, PhoneNumber, TotalSpent, OrdersCompleted) VALUES (1, 'Mason', 1, '15 Water Rd', 0412345678, 750, 3),(1, 'Mason', 1, '15 Water Rd', 0412345678, 750, 3);

【讨论】:

    【解决方案3】:
    <?php
    
    CREATE TABLE Customer_info (
        CustomerID int,
        LastName varchar(50),
        Username int,
        Address varchar(777),
        PhoneNumber int,
        TotalSpent int,
        OrdersCompleted int
        );
    
    "INSERT INTO Customer_info('CustomerID','LastName','Username','Address','PhoneNumber','TotalSpent','OrdersCompleted')VALUES
        ('1', 'Mason','1','15 Water Rd','0412345678','750','3'), 
        ('2', 'Smith','2','14 Water Rd','0412345679','400','4'),
        ('3', 'Lens','3','1 Water rd','0412345671','700','7'), 
        ('4', 'Marks','4','5 Fire Rd','0412345672','100','1'),
        ('5', 'Barr', '5', '19 Fire Rd','0412345673','500','1'), 
        ('6','Blok','6','21 Fire Rd','0412345674','1000','10'),
        ('7','Pume','7','21 Water Rd','0412345675','1000','2'), 
        ('8','Po','8','77 Earth Rd','0412345676','1000','4'),
        ('9','Adid','9','20 Earth Rd','0412345677','2','200'), 
        ('10', 'Lew', '10','6 Earth Rd','0412345679', '250', '1'),
        ('11','Chia','11','1 Earth Rd','0412345681','150','1'), 
        ('12','Barrett','12','11 Wind Rd','0412345682','450','9'),
        ('13','James','13','9 Wind Rd','0412345683','250','10'), 
        ('14', 'Foop','14','2 Window St','0412345684','200', '10'),
        ('15','Watch','15','8 Window St','0412345685','1200','1'), 
        ('16', 'Irving', '16', '11 Window St', '0412345686', '1400', '2'),
        ('17', 'Jones', '17', '22 Window St', '0412345687', '1600', '2')";
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 2012-11-01
      • 1970-01-01
      • 2018-09-29
      • 2018-10-23
      • 2016-10-23
      • 1970-01-01
      • 2016-02-20
      • 1970-01-01
      相关资源
      最近更新 更多