sql - SQL INSERT INTO 请帮忙
问题描述
好的,所以我觉得我错过了一些如此微不足道的东西,但我不知道我做错了什么。我只是想将一些数据插入到表中,但出现错误
INSERT INTO SHOPS
VALUES
('12345', '10 smith street', 'brunswick', '3030',
'0404123123', 'shop1@shop.com'**),**
('65435', '10 road street', 'fitzroy', '3030',
'0404546564', 'shop2@shop.com'),
('34232', '10 car street', 'carlton', '3030', '0404455432',
'shop3@shop.com');
所以我在括号和逗号上遇到错误,我在第 4 行加粗。
如果有人知道如何解决这个问题,我将不胜感激。
解决方案
如果看起来您正在使用 MySQL 格式进行多行 INSERT 语句。这不适用于 Oracle。它应该是
INSERT ALL
INTO SHOPS (FIELD1, FIELD2, FIELD3, FIELD4, FIELD5, FIELD6)
VALUES ('12345', '10 smith street', 'brunswick', '3030', '0404123123',
'shop1@shop.com'),
INTO SHOPS (FIELD1, FIELD2, FIELD3, FIELD4, FIELD5, FIELD6)
VALUES ('65435', '10 road street', 'fitzroy', '3030', '0404546564',
'shop2@shop.com'),
INTO SHOPS (FIELD1, FIELD2, FIELD3, FIELD4, FIELD5, FIELD6)
VALUES ('34232', '10 car street', 'carlton', '3030', '0404455432',
'shop3@shop.com')
SELECT * FROM DUAL;
作为替代方案,您可以使用不同形式的 INSERT 语句:
INSERT INTO SHOPS (FIELD1, FIELD2, FIELD3, FIELD4, FIELD5, FIELD6)
SELECT '12345', '10 smith street', 'brunswick', '3030', '0404123123',
'shop1@shop.com' FROM DUAL UNION ALL
SELECT '65435', '10 road street', 'fitzroy', '3030', '0404546564',
'shop2@shop.com' FROM DUAL UNION ALL
SELECT '34232', '10 car street', 'carlton', '3030', '0404455432',
'shop3@shop.com' FROM DUAL
或者您可以使用 MERGE 语句:
MERGE INTO SHOPS s
USING (SELECT '12345' AS FIELD1, '10 smith street' AS FIELD2, 'brunswick' AS FIELD3,
'3030' AS FIELD4, '0404123123' AS FIELD5,
'shop1@shop.com' AS FIELD6 FROM DUAL UNION ALL
SELECT '65435', '10 road street', 'fitzroy', '3030', '0404546564',
'shop2@shop.com' FROM DUAL UNION ALL
SELECT '34232', '10 car street', 'carlton', '3030', '0404455432',
'shop3@shop.com' FROM DUAL) d
ON (d.FIELD1 = s.FIELD1)
WHEN NOT MATCHED THEN
INSERT (FIELD1, FIELD2, FIELD3, FIELD4, FIELD5, FIELD6)
VALUES (d.FIELD1, d.FIELD2, d.FIELD3, d.FIELD4, d.FIELD5, d.FIELD6);
我使用了 FIELD1、FIELD2、...、FIELD6,因为您的 INSERT 语句中没有包含字段列表 - 将它们替换为正确的字段名称。MERGE 语句假定 FIELD1 是 SHOPS 上的主键 - 将其替换为正确的字段名称。
推荐阅读
- django - Django collectstatic 不适用于资产的嵌套目录
- matlab - 以特定格式将两列合并为一列
- spring - Spring redis缓存普通键
- terraform - 如何使用 terraform 删除网络 acl?
- linux - 无法在 Katacoda 操场上配置上下文/让 kubectl 在 node01 上工作
- ibm-watson - 关于我们在训练 Watson VR 分类器时可以上传的最大图像总数和大小
- android - 如何在录制时向视频添加音频 [ContinuousCaptureActivity] [Grafika]
- python - 如何使用python根据特定条件添加xml标签
- android - 如何修复 Android Studio 中的渲染问题
- zap - 如何在 ZAP 中自动化 Fuzz 操作?