sql - 列不允许 SQL
问题描述
错误代码截图(ShipDate 现在是错误)
对于我的学校项目,我们将创建一个产品数据库,客户在其中下订单等。我已经将我的代码与同学进行了比较,除了我的列更少之外,它基本上是相同的。这部分代码将用户输入插入到订单表中。
倒数第二列 OrderStatus 是控制台中出现 * 的位置。如果它看起来很乱,我提前道歉,由于某种原因,正文中的格式不能用于发布帖子。
代码:
INSERT INTO Orders
VALUES (OrderNum,
OrderDate,
CustID,
PNum,
UnitPrice,
QtyOrder,
TotalCost,
ShipDate,
QtyShipped,
OrderStatus,
NULL);
SELECT MaxNum,
SYSDATE,
&vCustID,
'&vPNum',
UnitPrice,
&vQty,
TotalCost,
ShipDate,
QtyShipped,
'Open',
Orders.ReasonNum
FROM CancelledOrder, Orders, Counter
WHERE Orders.ReasonNum = CancelledOrder.ReasonNum;
COMMIT;
订单表供参考
CREATE TABLE Orders
(
OrderNum NUMBER (4) PRIMARY KEY,
OrderDate DATE,
CustID CHAR (3),
PNum VARCHAR2 (3),
UnitPrice NUMBER,
QtyOrder NUMBER,
TotalCost NUMBER,
ShipDate DATE,
QtyShipped NUMBER,
OrderStatus VARCHAR2 (10),
ReasonNum NUMBER,
CONSTRAINT fk_CustID FOREIGN KEY (CustID) REFERENCES Customer (CustID),
CONSTRAINT fk_PNum FOREIGN KEY (PNum) REFERENCES Product (PNum),
CONSTRAINT fk_ReasonNum FOREIGN KEY
(ReasonNum)
REFERENCES CancelledOrder (ReasonNum)
);
解决方案
我认为这INSERT
应该与SELECT
,即
insert into ...
select ... from
在你的例子中:
INSERT INTO Orders (OrderNum, --> no VALUES keyword, but list of columns
OrderDate,
CustID,
PNum,
UnitPrice,
QtyOrder,
TotalCost,
ShipDate,
QtyShipped,
OrderStatus,
reasonnum) --> reasonnum instead of null
SELECT MaxNum,
SYSDATE,
&vCustID,
'&vPNum',
UnitPrice,
&vQty,
TotalCost,
ShipDate,
QtyShipped,
'Open',
Orders.ReasonNum
FROM CancelledOrder, Orders, Counter
WHERE Orders.ReasonNum = CancelledOrder.ReasonNum;
此外,检查FROM
&WHERE
子句:只有一个条件涉及 3 个表。结果,您将获得比预期更多的行,除非您修复该问题(或除非COUNTER
表仅包含 1 行)。
推荐阅读
- android - Firebase 数据库读取数据
- amazon-web-services - 带有 Lambda 和 S3 的 AWS ElasticSearch 不会将文档添加到索引中
- javascript - 如何处理 fetch() 响应并仍然异步工作
- node.js - async/await 和 http 客户端请求的问题
- node.js - 在 AppEngine Node.js 标准环境中稳定快速会话
- matlab - matlab代码生成重采样:项数N必须是常数
- angular - 如何在剑道网格中执行服务器端过滤以获取角度
- xamarin.android - 根据条件更改工具栏
- javascript - 负 z-index 在模态中不起作用
- ruby-on-rails - 升级到 macOS Mojave,现在在 Rails 控制台中出现错误