我很好奇我是否可以在创建另一列时使用现有表的列的类型。就像使用像varchar这样的数据类型一样,我希望我的列与另一个表中的列具有相同的类型。
我在想象类似的东西 CREATE TABLE FIRST(id NUMBER(5),name VARCHAR(25))
然后
CREATE TABLE SECOND(id NUMBER(6),value FIRST.NAME%TYPE)
,VALUE列的类型为VARCHAR(25)
我将此视为一般SQL问题,但我使用的是Oracle。
答案 0 :(得分:2)
您可以执行以下操作:
CREATE TABLE SECOND AS (
SELECT ID, NAME AS VALUE
FROM FIRST
WHERE 1 = 2
);
如果认为%type语法只是一个plsql的东西
答案 1 :(得分:1)
在标准SQL中,您将编写一个CREATE DOMAIN语句。
CREATE DOMAIN my_name_type VARCHAR(25);
但我不认为Oracle支持CREATE DOMAIN
,所以我认为你需要创建一个对象。
create type my_name_type as object
( my_name_col varchar2(25));
在任何一种情况下,您都可以直接在创建表格时使用它。
create table test (
user_name my_name_type
);
我记得INSERT语句的语法有点奇怪;检查文档。
答案 2 :(得分:-1)
您可以使用SELECT INTO
:
SELECT TOP 0 CAST(0 as int) as 'id', Field
INTO NewTable
FROM OtherTable