oracle中學習的筆記

2021-10-02 15:00:47 字數 2139 閱讀 5339

create

table test2(id number,name varchar2(10)

constraint na not

null);

desc test2;

名稱 空值? 型別

---- -------- ------------

id number

name not

null varchar2(

10)

這邊在建立表t1的時候設定了三個列,id 型別為number,name 型別為varchar2,location 型別為varchar2同時location這個欄位的約束設定了乙個約束名稱p_locat,這是在建立表的時候給表中的字段進行約束的寫法

在表建立好之後給表加上約束,先建立兩張表dept 和emp分別以departments和employees為模板來建立,之後新增約束表dept中設定department_id為主鍵並設定好約束名稱為pk_dept_id,再設定emp的department_id欄位的約束名稱和它的外來鍵時dept的department_id欄位

create

table dept2 as

select

*from departments where0=

1;create

table emp2 as

select

*from employees where0=

1;alter

table dept2 add

constraint pk_dept_id primary

key(department_id)

;alter

table emp2 add

constraint fk_dept_id foreign

key(department_id)

references dept2(department_id)

;

​ 需要注意的是,這邊在設定emp2表的外來鍵的時候emp2表為子表,dept2表為父表,這裡的主表的字段需要是該表中的唯一索引或者主鍵,否則就會在設定emp2表字段外來鍵的時候系統報錯。

create

table dept3 as

select

*from departments where0=

1;create

table e*** as

select

*from employees where0=

1;alter

table e*** add

constraint fk_dept_id foreign

key(department_id)

references dept3(department_id)

;錯誤報告 -

ora-

02270: 此列列表的唯一關鍵字或主鍵不匹配

02270.

00000

-"no matching unique or primary key for this column-list"

*cause: a references clause in a create

/alter

table statement

gives a column

-list for which there is

no matching unique

orprimary

keyconstraint

in the referenced table.*

action: find the correct column names using the all_cons_columns

catalog view

在這邊如果表一為表2的主表,在插入資料的時候需要先插入表1再插入表2,否則會報錯

insert

into emp2 select

*from employees;

錯誤報告 -

ora-

02291: 違反完整約束條件 (hr.fk_dept_id)

- 未找到父項關鍵字

學習方法 教中學 做中學 創中學

學習要以思考為基礎 一般的學習只是一種模仿,而沒有任何作用 思考由懷疑和答案組成,學習便是經常懷疑,經常隨時發問。懷疑是智慧型的大門,知道得越多,就越會發問,而問題就越多。所以,發問使人進步,發問和答案一樣重要。是毛毛雨,需不斷地滋潤 教師在傳授知識和技術的過程中,偶爾會傳授教訓,但這種教訓如果沒有...

重構中學習

今天,發現昨天下午新作的頁面中查詢資料時,條件裡出現了很多個0,程式是asp的。就開始向把0給直接刪除。開啟頁面一看,這些個0是從另外乙個函式返回的,就沒有貿然刪除,怕出錯。到另外乙個函式中,發現返回0並沒有錯誤,0是函式的預設值,不能從引數中直接把 0 直接改成空字元。那就呼叫端開始處理。在呼叫端...

中學時候的「黑客筆記」

晚上清理硬碟,無意中發現了很多年前我留下的 黑客學習筆記 和 黑客工具 我在中學時候,曾極度痴迷於所謂的 黑客技術 尤其是喜愛鑽研windows平台上的漏洞,入侵等。我有五六年不倒騰那些玩意了,現在對於那些命令和工具,似乎已經感到很陌生了。但是對於基本的原理和入侵思想,還是有點理解的。其實我當初應該...