我正在尝试在phpMyadmin中创建一个允许我在我的产品表中插入新行数据的查询,而且由于外键约束,我很难这样做。
我已经研究了这个问题很长一段时间了,我认为我的语法正确,但我仍然收到一条通用消息,说我的语法存在问题:
1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法 靠近'British Bus Model',(SELECT productLine FROM productlines 产品'在第3行
以下是我正在使用的代码:
INSERT INTO products (productCode, productName, productLine, productScale, productVendor, productDescription, quantityInStock, buyPrice, MSRP)
VALUES ( ‘S72_3213’ , ‘Double-Decker British Bus Model’,
( SELECT productLine
FROM productlines
WHERE productLine = ‘Double-Decker Buses’) , 1:33 , ‘Classic Bus Models’ , ‘testing’ , 150, 50.00 , 90.00 );
我基本上是在尝试为产品输入新数据,但productLine应该从productlines表中提取。关于我的语法错误的任何建议将不胜感激。谢谢!!
答案 0 :(得分:0)
SELECT A FROM TBL WHERE A='xxx'
这是不好的SQL,没有任何意义,这是第一个问题。 另一个是1:33 ....我不明白它是什么。 这是我的建议
INSERT INTO products (productCode, productName, productLine, productScale, productVendor, productDescription, quantityInStock, buyPrice, MSRP)
SELECT ‘S72_3213’ , ‘Double-Decker British Bus Model’, productLine, 1:33 , ‘Classic Bus Models’ , ‘testing’ , 150, 50.00 , 90.00 FROM productlines
WHERE OTHER_VAR = ‘Double-Decker Buses’
答案 1 :(得分:0)
除了@Mike Sherrill指出的其他问题之外,你得到语法错误的原因是因为你的单引号不是实际的单引号。
Here is a SQLFiddle进行并排比较。顶部查询使用查询中的单引号,这会导致整个小提琴无法运行,因为无法解析SQL。底部查询使用真正的单引号,如果您注释掉或删除顶部查询,它将正常运行。
将有问题的单引号(‘’
)更改为适合SQL的单引号(''
),您应该能够解决此语法错误。
答案 2 :(得分:0)
将您的查询更改为
INSERT INTO products
(productCode, productName, productLine, productScale, productVendor, productDescription, quantityInStock, buyPrice, MSRP)
VALUES
('S72_3213', 'Double-Decker British Bus Model', 'Double-Decker Buses', '1:33', 'Classic Bus Models', 'testing', 150, 50.00, 90.00);
你应该好好去。您的引号错误,1:33
附近没有引号,也没有必要的子选择。
如果您的查询有效,您可以考虑使用" productlines_id
"而不是产品线的名称(并且,取决于您的数据库结构a" productvendor_id
")