如何检查数据库插入语句需要哪些列?
How to check which columns are required for a database insert statement?
我正在尝试像任何旧的 Insert 语句一样插入到 table 中。这不是问题,但是 table 有几列,大约有 20 列。因此我想问一个简短的问题。您如何检查哪些列是必需的,哪些是系统自动生成的或默认为 NULL。通过知道我可以像下面这样插入一些大的 table:
INSERT INTO TABLE (A1,B2,C3,D4... to Z1000)
VALUES (1,2,3,4,... to x);
然后我可以将其简化为所需的插入 + 关键参数的最低限度。
要检查 NOT NULL 约束,您可以在 ALL_TAB_COLS
中查询 NULLABLE
:
例如,下面的查询将显示所有可为空的列。同样,您可以过滤为 NULLABLE = 'N'
以获取不为空的列。
SELECT column_name
FROM all_tab_cols
WHERE owner = 'HR'
AND table_name = 'EMPLOYEES'
AND NULLABLE ='Y';
COLUMN_NAME
---------------
FIRST_NAME
PHONE_NUMBER
SALARY
COMMISSION_PCT
MANAGER_ID
DEPARTMENT_ID
6 rows selected.
对于自动生成的 IDENTITY
列,您可以查询 ALL_TAB_IDENTITY_COLS
.
SELECT column_name,
generation_type,
identity_options
FROM all_tab_identity_cols
WHERE owner = 'OWNER'
AND table_name = 'TABLE_NAME';
要快速引用对象描述,您还可以使用 SQL 加 DESCRIBE
命令。它还将 运行 在大多数支持 sqlplus 命令的工具上,如 SQL Developer 等
我正在尝试像任何旧的 Insert 语句一样插入到 table 中。这不是问题,但是 table 有几列,大约有 20 列。因此我想问一个简短的问题。您如何检查哪些列是必需的,哪些是系统自动生成的或默认为 NULL。通过知道我可以像下面这样插入一些大的 table:
INSERT INTO TABLE (A1,B2,C3,D4... to Z1000)
VALUES (1,2,3,4,... to x);
然后我可以将其简化为所需的插入 + 关键参数的最低限度。
要检查 NOT NULL 约束,您可以在 ALL_TAB_COLS
中查询 NULLABLE
:
例如,下面的查询将显示所有可为空的列。同样,您可以过滤为 NULLABLE = 'N'
以获取不为空的列。
SELECT column_name
FROM all_tab_cols
WHERE owner = 'HR'
AND table_name = 'EMPLOYEES'
AND NULLABLE ='Y';
COLUMN_NAME
---------------
FIRST_NAME
PHONE_NUMBER
SALARY
COMMISSION_PCT
MANAGER_ID
DEPARTMENT_ID
6 rows selected.
对于自动生成的 IDENTITY
列,您可以查询 ALL_TAB_IDENTITY_COLS
.
SELECT column_name,
generation_type,
identity_options
FROM all_tab_identity_cols
WHERE owner = 'OWNER'
AND table_name = 'TABLE_NAME';
要快速引用对象描述,您还可以使用 SQL 加 DESCRIBE
命令。它还将 运行 在大多数支持 sqlplus 命令的工具上,如 SQL Developer 等