最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle判斷表、列、主鍵是否存在的方法

 更新時間:2018年04月24日 15:04:01   作者:特務(wù)小強  
這篇文章主要介紹了Oracle判斷表、列、主鍵是否存在的方法,下面是小編之家小編給大家?guī)淼囊恍┡袛喾椒ê痛蠹曳窒硐?/div>

在編寫程序時,數(shù)據(jù)庫結(jié)構(gòu)會經(jīng)常變化,所以經(jīng)常需要編寫一些數(shù)據(jù)庫腳本,編寫完成后需發(fā)往現(xiàn)場執(zhí)行,如果已經(jīng)存在或者重復(fù)執(zhí)行,有些腳本會報錯,所以需要判斷其是否存在,現(xiàn)在我就把經(jīng)常用到的一些判斷方法和大家分享下:

一。判斷Oracle表是否存在的方法

declare tableExistedCount number;  --聲明變量存儲要查詢的表是否存在
begin
   select count(1) into tableExistedCount from user_tables t where t.table_name = upper('Test'); --從系統(tǒng)表中查詢當(dāng)表是否存在
   if tableExistedCount = 0 then --如果不存在,使用快速執(zhí)行語句創(chuàng)建新表
     execute immediate
     'create table Test --創(chuàng)建測試表
     (ID number not null,Name = varchar2(20) not null)';
   end if;
end;

二。判斷Oracle表中的列是否存在的方法

declare columnExistedCount number;  --聲明變量存儲要查詢的表中的列是否存在
begin 
    --從系統(tǒng)表中查詢表中的列是否存在
    select count(1) into columnExistedCount from user_tab_columns t where t.table_name = upper('Test') and t.column_name = upper('Age');   
    --如果不存在,使用快速執(zhí)行語句添加Age列
    if columnExistedCount = 0 then 
      execute immediate
      'alter table Test add age number not null';
    end if;
end;

DECLARE
num NUMBER;
BEGIN
SELECT COUNT(1)
INTO num
from cols
where table_name = upper('tableName')
and column_name = upper('columnName');
IF num > 0 THEN
execute immediate 'alter table tableName drop column columnName';
END IF;
END;

三。判斷Oracle表是否存在主鍵的方法

declare primaryKeyExistedCount number;  --聲明變量存儲要查詢的表中的列是否存在
begin 
    --從系統(tǒng)表中查詢表是否存在主鍵(因一個表只可能有一個主鍵,所以只需判斷約束類型即可)
    select count(1) into primaryKeyExistedCount from user_constraints t where t.table_name = upper('Test') and t.constraint_type = 'P';   
    --如果不存在,使用快速執(zhí)行語句添加主鍵約束
    if primaryKeyExistedCount = 0 then 
    execute immediate
    'alter table Test add constraint PK_Test_ID primary key(id)';
    end if;
end;

四。判斷Oracle表是否存在外鍵的方法

declare foreignKeyExistedCount number;  --聲明變量存儲要查詢的表中的列是否存在
begin 
    --從系統(tǒng)表中查詢表是否存在主鍵(因一個表只可能有一個主鍵,所以只需判斷約束類型即可)
    select count(1) into foreignKeyExistedCount from user_constraints t where t.table_name = upper('Test') and t.constraint_type = 'R' and t.constraint_name = '外鍵約束名稱';   
    --如果不存在,使用快速執(zhí)行語句添加主鍵約束
    if foreignKeyExistedCount = 0 then 
      execute immediate
      'alter table Test add constraint 外鍵約束名稱 foreign key references 外鍵引用表(列)';
    end if;
end;

總結(jié)

以上所述是小編給大家介紹的Oracle判斷表、列、主鍵是否存在的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Oracle中nvl()和nvl2()函數(shù)實例詳解

    Oracle中nvl()和nvl2()函數(shù)實例詳解

    NVL函數(shù)的功能是實現(xiàn)空值的轉(zhuǎn)換,根據(jù)第一個表達式的值是否為空值來返回響應(yīng)的列名或表達式,下面這篇文章主要給大家介紹了關(guān)于Oracle中nvl()和nvl2()函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • 使用zabbix監(jiān)控oracle表數(shù)據(jù)的方法

    使用zabbix監(jiān)控oracle表數(shù)據(jù)的方法

    有時候我們需要對表中的數(shù)據(jù)進行監(jiān)控,比如筆者的這種場景:?微服務(wù)自己實現(xiàn)了定時任務(wù),定時任務(wù)的執(zhí)行結(jié)果會記錄到某張日志表中,如果定時任務(wù)執(zhí)行失敗將會對業(yè)務(wù)產(chǎn)生影響,所以筆者用zabbix+python進行了監(jiān)控,當(dāng)任務(wù)失敗時?進行告警,需要的朋友可以參考下
    2024-04-04
  • Oracle 生成未來三天的整點時間(步驟詳解)

    Oracle 生成未來三天的整點時間(步驟詳解)

    這篇文章主要介紹了Oracle 生成未來三天的整點時間,本文通過實例代碼分步驟給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Oracle 12c實現(xiàn)手工建庫而非CDB及CDB創(chuàng)建的方法

    Oracle 12c實現(xiàn)手工建庫而非CDB及CDB創(chuàng)建的方法

    這篇文章主要給大家介紹了關(guān)于Oracle 12c實現(xiàn)手工建庫而非CDB及CDB創(chuàng)建的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用oracle 12c具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • Oracle數(shù)據(jù)庫中通用的函數(shù)實例詳解

    Oracle數(shù)據(jù)庫中通用的函數(shù)實例詳解

    OracleSQL提供了用于執(zhí)行特定操作的專用函數(shù),這些函數(shù)大大增強了SQL語言的功能,下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫中通用函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • Windows下ORACLE 10g完全卸載的方法分析

    Windows下ORACLE 10g完全卸載的方法分析

    最近有朋友在群里問如何完全卸載ORACLE 10g,這里簡單的整理下,方便需要的朋友
    2012-06-06
  • Oracle 分析函數(shù)RANK(),ROW_NUMBER(),LAG()等的使用方法

    Oracle 分析函數(shù)RANK(),ROW_NUMBER(),LAG()等的使用方法

    Oracle分析函數(shù)RANK(),ROW_NUMBER(),LAG()等的使用方法,需要的朋友可以參考下。
    2009-11-11
  • Oracle索引(B*tree與Bitmap)的學(xué)習(xí)總結(jié)

    Oracle索引(B*tree與Bitmap)的學(xué)習(xí)總結(jié)

    本篇文章是對Oracle索引(B*tree與Bitmap)進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • 一些實用的sql語句

    一些實用的sql語句

    一些實用的sql,需要的朋友可以參考下。
    2009-11-11
  • Oracle解鎖的方式介紹

    Oracle解鎖的方式介紹

    通過SQL查詢可以查看到被鎖住的表AA以及Sid,Serial#;使用DBA身份,通過執(zhí)行 alter system kill session 'SID,SERIAL#';即可解鎖
    2013-06-06

最新評論

噶尔县| 商洛市| 酉阳| 登封市| 芜湖县| 利川市| 襄城县| 枣庄市| 大丰市| 昌乐县| 依安县| 瑞丽市| 永康市| 宁远县| 页游| 石屏县| 启东市| 涞水县| 厦门市| SHOW| 高淳县| 双峰县| 天峨县| 屏边| 松滋市| 灵台县| 礼泉县| 贡觉县| 苍溪县| 济源市| 繁昌县| 康马县| 武宣县| 深州市| 甘肃省| 休宁县| 孟连| 临高县| 沙湾县| 南川市| 宁安市|