如何引用同一个表中的列

时间:2016-10-02 12:29:42

标签: sql db2

我有一个带有columnsn的表Receipt

| ORNUMBER | Description | Quantity | Date |

我想将QuantityDate列引用到Description

例如,我删除了Description列,QuantityDate也将被删除

这是什么剧本?谢谢!

1 个答案:

答案 0 :(得分:0)

嗨,
以下是您可以使用的程序,

BEGIN
ALTER TABLE Receipt DROP COLUMN Description;
END;

DECLARE 
    del_columns INTEGER;
BEGIN
    SELECT COUNT(*)
        INTO del_columns
        FROM dba_tab_columns
        WHERE OWNER = 'user_name'
        AND table_name = 'Receipt'
        AND column_name = 'Description'
IF(del_columns = 0)
THEN
   EXECUTE IMMEDIATE 'ALTER TABLE Receipt DROP column Quantity, Date;
END IF;
END;
  

Explination

  • 在第一个begin语句中,删除描述列
  • 在第二个语句中,声明了
  • 中的临时整数值del_column
  • 从系统表中,表名和列名被声明为条件并显示计数

  • 如果计数为0,则说明列不可用,然后将删除其他两个其他列。如果您得到1,则该列可用,另外两列不会被删除

  • 您还可以在where条件中使用all_tab_columns表,该条件提供除该用户之外的所有表名,因为它是超级用户
  • 确保在where condition
  • 中提供您的所有者名称