oracle - 尝试将表 1 中的数据插入表 2 时值不足
问题描述
我想在表中添加一列,但我收到表需要为空的错误。我使用以下命令创建备份表
CREATE TABLE attachments_backup
AS
SELECT * FROM attachments
当我创建备份表时,我将数据插入 attachments
到 attachments_backup
INSERT INTO attachments SELECT * FROM attachments_backup
table 1
然后我从(附件)中删除数据
DELETE FROM attachments
我添加了需要在表格附件中添加的列
ALTER TABLE attachments
ADD ChildrenDirectory VARCHAR(50) DEFAULT NULL
就在这里问题发生了。由于我现在添加了新列,因此我可以将数据插入table 2
(attachment_backup)
到table 1 (attachments)
我尝试这样的事情
INSERT INTO attachments VALUES (AtaId,Belongs_To,ClientId,File_path,Id,Image_Path,Lock_,Name,Project_Id,Type,Category) SELECT * FROM attachments_backup
但是这个解决方案不起作用,因为我收到错误消息"Not enought values"
SQL Error: ORA-00947: not enough values
00947. 00000 - "not enough values"
由于我没有更多的想法,现在有没有人如何解决这种问题?
附件表
ATAID NUMBER(10,0)
BELONGS_TO NUMBER(10,0)
CLIENTID NUMBER(10,0)
FILE_PATH VARCHAR2(255 CHAR)
ID NUMBER(10,0)
IMAGE_PATH VARCHAR2(255 CHAR)
ISDELETED NUMBER(10,0)
LOCK_ CHAR(1 CHAR)
NAME VARCHAR2(255 CHAR)
PROJECT_ID NUMBER(10,0)
TYPE VARCHAR2(4000 CHAR)
CATEGORY VARCHAR2(20 BYTE)
CHILDRENDIRECTORY VARCHAR2(50 BYTE)
附件_备份
ATAID NUMBER(10,0)
BELONGS_TO NUMBER(10,0)
CLIENTID NUMBER(10,0)
FILE_PATH VARCHAR2(255 CHAR)
ID NUMBER(10,0)
IMAGE_PATH VARCHAR2(255 CHAR)
ISDELETED NUMBER(10,0)
LOCK_ CHAR(1 CHAR)
NAME VARCHAR2(255 CHAR)
PROJECT_ID NUMBER(10,0)
TYPE VARCHAR2(4000 CHAR)
CATEGORY VARCHAR2(20 BYTE)
解决方案
欢迎,
您可以使用 alter 命令向现有表添加新列,即使该表不为空
要从表“A”插入表“B”或反之亦然,您需要有确切的列数才能执行“select *”类型插入
推荐阅读
- java - 按jpa中的其他表列值拆分记录
- python - 如何为 Python 变量显式指定类类型?
- kubernetes - 具有 NodePort 类型的 bitnami/kafka - kafka.errors.NodeNotReadyError: NodeNotReadyError
- ubuntu - 在英特尔 NUC 上安装 Ubuntu 时出现问题 - 无法 SSH
- python - pytorch BCELoss() 如何将输入大小更改为目标大小?
- pdf - 为什么 Apple Preview 无法从使用 HaruPDF 创建的 PDF 中复制/粘贴文本?
- javascript - 错误:使用 javasript(jquery) 从 Web 解析 JSON 数据
- prometheus-operator - 将txt文件中prometheus格式数据写入prometheus
- reactjs - 在 reactjs 中设置具有历史记录的路由器
- performance - 如何并行运行 ansible 角色