真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle如何取消唯一 oracle刪除唯一約束

怎么取消字段唯一性約束

1)禁止所有表約束的SQL

成都創(chuàng)新互聯(lián)長期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為皮山企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站制作,皮山網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

select 'alter table '+name+' nocheck constraint all' from sysobjects where type='U'

2)刪除所有表數(shù)據(jù)的SQL

select 'TRUNCATE TABLE '+name from sysobjects where type='U'

3)恢復(fù)所有表約束的SQL

select 'alter table '+name+' check constraint all' from sysobjects where type='U'

4)刪除某字段的約束

declare @name varchar(100)

--DF為約束名稱前綴

select @name=b.name from syscolumns a,sysobjects b where a.id=object_id('表名') and b.id=a.cdefault and a.name='字段名' and b.name like 'DF%'

--刪除約束

alter table 表名 drop constraint @name

--為字段添加新默認(rèn)值和約束

ALTER TABLE 表名 ADD CONSTRAINT @name DEFAULT (0) FOR [字段名]

--刪除約束

ALTER TABLE tablename

Drop CONSTRAINT 約束名

--修改表中已經(jīng)存在的列的屬性(不包括約束,但可以為主鍵或遞增或唯一)

ALTER TABLE tablename

alter column 列名 int not null

--添加列的約束

ALTER TABLE tablename

ADD CONSTRAINT DF_tablename_列名 DEFAULT(0) FOR 列名

--添加范圍約束

alter table tablename add check(性別 in ('M','F'))

oracle往dept表中插入dept表中插入重復(fù)數(shù)據(jù),如何刪除唯一約束,以及其它表對dept主鍵的外鍵引用

首先刪除emp表中關(guān)聯(lián)dept的外鍵約束:

alter table EMP drop constraint FK_DEPTNO;

再刪除dept的主鍵約束:

alter table DEPT drop constraint PK_DEPT;

這樣就能插入重復(fù)數(shù)據(jù)了。

oracle中怎么刪除唯一約束unique?

首先你得確定數(shù)據(jù)庫約束表里是否有AN_SHORT_NAME_INDEX這個約束

(如果你有管理員權(quán)限的話)select * from dba_constraints where constraint_name='AN_SHORT_NAME_INDEX';

如果有的話,會顯示這個約束的所有信息。

剩下的自己看著弄吧。

希望能解決你的問題。

powerdesigner導(dǎo)出oracle語句是如何去掉唯一約束的引號

使用PowerDesigner生成數(shù)據(jù)庫 建表SQL 腳 本時,尤其是Oracle數(shù)據(jù)庫時,表名一般會帶引號。其實(shí)加引號是PL/SQL的規(guī)范,數(shù)據(jù)庫會嚴(yán)格按照“”中的名稱建表,如果沒有“”,會按照 ORACLE默認(rèn)的設(shè)置建表(DBA STUDIO里面),默認(rèn)是全部大寫,這樣,在ORACLE數(shù)據(jù)庫里的字段就如“Column_1”。如果你把引號去掉,ORACLE自動默認(rèn)為全部大 寫,即“COLUMN_1”,所以這段SQL在PL/SQL中執(zhí)行的時候是沒有任何問題的,如果不加引號,在PL/SQL會自動識別為大寫。如果加了引 號,sql或者h(yuǎn)ql查詢“Column_1='XXX'”時,就會報錯:ORA-00904: "COLUMN_1": 無效的標(biāo)識符,除非寫為“‘Column_1’='XXX'”。

這個問題是生成腳本格式的問題,因此,我們可以 嘗試在DBMS配置文件中修改相應(yīng)的格式設(shè)置來解決這個問題。選擇DBMS Properties,選擇Script-Sql-Format,有一項(xiàng)CaseSensitivityUsingQuote, 它的comment為“Determines if the case sensitivity for identifiers is managed using double quotes”,表示是否適用雙引號來規(guī)定標(biāo)識符的大小寫,可以看到右邊的values默認(rèn)值為“YES”,改為“No”,點(diǎn)擊【應(yīng)用】按鈕。

1、去掉Oracle生成的SQL創(chuàng)建語句中的雙引號

用powerdesigner導(dǎo)出orale數(shù)據(jù)庫的建表sql時,默認(rèn)會給表名和字段名加上雙引號,如下圖:

這樣給操作數(shù)據(jù)庫帶來很大的不便,解決的辦法是設(shè)置Database菜單,

然后點(diǎn)擊Edit Current DBMS菜單,再依次點(diǎn)開Script-Format,然后找到CaseSensitivityUsingQuote

將其設(shè)為NO,即可。如下圖:

如果帶有包的話,導(dǎo)出時要選擇包中的表。

2、PowerDesign高級應(yīng)用

編寫相關(guān)的VBS腳本在PowerDesign里自定義一些命令與操作等,具體的可以參考C:\Program Files\Sybase\PowerDesigner 9\VB Scripts目錄下的腳本示例。怎么運(yùn)用這些腳本呢?

在Tools-Execute Commands里可以進(jìn)行操作。具體說明在幫助里寫的很清楚。幫助的位置在 PowerDesigner General Features Guide- PART 2. Modeling Guide-CHAPTER 8. Managing Objects-Accessing objects using VBScript-VBScript uses in PowerDesigner

PowerDesign的使用主要是DBMS的配置

3、修改建表腳本生成規(guī)則。

如果每個表格都有相同的字段,可以如下修改:

Database - Edit Current DBMS 展開 Script - Object - Table - Create 見右下的Value值,可以直接修改如下:

/* tablename: %TNAME% */

create table [%QUALIFIER%]%TABLE% (

%TABLDEFN%

ts char(19) null default convert(char(19),getdate(),20),

dr smallint null default 0

)

[%OPTIONS%]

其中的 ts、dr 兩列會在生成SQL腳本的時候自動的插入每個表格中,其中的%TNAME% 變量是給每個表格的SQL添加一個該表的Name值注釋。

4、修改字段生成規(guī)則。

要給每個字段都添加一個注釋的話,同一窗口中展開 Script - Object - Column - Add 的 Value修改為:

%20:COLUMN% [%COMPUTE%?AS (%COMPUTE%):%20:DATATYPE% [%IDENTITY%?%IDENTITY%:[%NULL%][%NOTNULL%]][ default %DEFAULT%]

[[constraint %CONSTNAME%] check (%CONSTRAINT%)]]/*%COLNNAME%*/

其中的%COLNNAME%就是列的Name值(可以是中文)

5、修改外鍵命名規(guī)則。

選擇Database—Edit Current DBMS

選擇Scripts-》Objects-》Reference-》ConstName

可以發(fā)現(xiàn)右側(cè)的Value為:

FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT%

可見,該命名方法是:'FK_'+8位子表名+9位Reference名+8位父表名,你可以根據(jù)這中模式自定義為:

FK_%.U7:CHILD%_RELATIONS_%.U7:PARENT%,

可以使FK名稱變?yōu)镕K_TABLE_2_RELATIONS_TABLE_1

掌握這種方法后就可以按照自己的想法修改了

生成建庫腳本SQL文件中的表頭注釋很討厭,可以在 Databse - Generate Database (Ctrl+G)窗口中,選擇Options卡片,去掉Usage的Title鉤選項(xiàng)即可。

6、添加外鍵

Model - References新建一條外鍵后,雙擊進(jìn)入外鍵屬性,在“Joins”卡片中可以選擇子表的外鍵字段。如下圖:

接著出現(xiàn)如下畫面:

按照步驟操作即可。

7、取消name和code聯(lián)動

在修改name的時候,code的值將跟著變動,很不方便。修改方法:PowerDesign中的選項(xiàng)菜單里修改,在[Tool]--[General Options]-[Dialog]-[Operating modes]-[Name to Code mirroring],這里默認(rèn)是讓名稱和代碼同步,將前面的復(fù)選框去掉就行了。如圖:

編寫相關(guān)的VBS腳本在PowerDesign里自定義一些命令與操作等,具體的可以參考C:\Program Files\Sybase\PowerDesigner 9\VB Scripts目錄下的腳本示例。怎么運(yùn)用這些腳本呢?

在Tools-》Execute Commands里可以進(jìn)行操作。具體說明在幫助里寫的很清楚。幫助的位置在 PowerDesigner General Features Guide- PART 2. Modeling Guide-CHAPTER 8. Managing Objects-Accessing objects using VBScript-VBScript uses in PowerDesigner

PowerDesign的使用主要是DBMS的配置

1、修改建表腳本生成規(guī)則。如果每個表格都有相同的字段,可以如下修改:

Database - Edit Current DBMS 展開 Script - Object - Table - Create 見右下的Value值,可以直接修改如下:

/* tablename: %TNAME% */

create table [%QUALIFIER%]%TABLE% (

%TABLDEFN%

ts char(19) null default convert(char(19),getdate(),20),

dr smallint null default 0

)

[%OPTIONS%]

其中的 ts、dr 兩列會在生成SQL腳本的時候自動的插入每個表格中,其中的%TNAME% 變量是給每個表格的SQL添加一個該表的Name值注釋。

2、修改字段生成規(guī)則。要給每個字段都添加一個注釋的話,同一窗口中展開 Script - Object - Column - Add 的 Value修改為:

%20:COLUMN% [%COMPUTE%?AS (%COMPUTE%):%20:DATATYPE% [%IDENTITY%?%IDENTITY%:[%NULL%][%NOTNULL%]][ default %DEFAULT%]

[[constraint %CONSTNAME%] check (%CONSTRAINT%)]]/*%COLNNAME%*/

其中的%COLNNAME%就是列的Name值(可以是中文)

3、修改外鍵命名規(guī)則。選擇Database—Edit Current DBMS

選擇Scripts-》Objects-》Reference-》ConstName

可以發(fā)現(xiàn)右側(cè)的Value為:

FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT%

可見,該命名方法是:'FK_'+8位子表名+9位Reference名+8位父表名,你可以根據(jù)這中模式自定義為:

FK_%.U7:CHILD%_RELATIONS_%.U7:PARENT%,

可以使FK名稱變?yōu)镕K_TABLE_2_RELATIONS_TABLE_1

掌握這種方法后就可以按照自己的想法修改了

生成建庫腳本SQL文件中的表頭注釋很討厭,可以在 Databse - Generate Database (Ctrl+G)窗口中,選擇Options卡片,去掉Usage的Title鉤選項(xiàng)即可。

4、添加外鍵

Model - References新建一條外鍵后,雙擊進(jìn)入外鍵屬性,在“Joins”卡片中可以選擇子表的外鍵字段

5、去掉生成的SQL腳本雙引號的問題:ORACLE 8I2::Script\Sql\Format\CaseSensitivityUsingQuote改成No,默認(rèn)是Yes所以會有雙引號。

在修改name的時候,code的值將跟著變動,很不方便。修改方法:PowerDesign中的選項(xiàng)菜單里修改,在[Tool]--[General Options]-[Dialog]-[Operating modes]-[Name to Code mirroring],這里默認(rèn)是讓名稱和代碼同步,將前面的復(fù)選框去掉就行了。

oracle刪除唯一約束sql語句

假如有主表 test_main 與 子表 test_sub

SQL -- 創(chuàng)建外鍵(默認(rèn)選項(xiàng))

SQL ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main;

Table altered.

刪除外鍵約束

ALTER TABLE test_sub DROP CONSTRAINT main_id_cons;

Oracle之約束

約束用于限制加入表數(shù)據(jù)的類型,目的是保證數(shù)據(jù)的一致性和完整性

創(chuàng)建格式:在創(chuàng)建表時規(guī)定約束(在Create添加),也可以在創(chuàng)建之后添加(Alter table)。

約束類型:NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK、DEFAULT。

非空約束就是限制必須為某個列提供值,不允許有空值的存在。

空值(NULL)是不存在的值,它既不是數(shù)字0也不是空字符串,而是不存在未知的情況,即:該列的所有值不能為空,但可以為空字符或者0。

結(jié)果:通過desc查看會發(fā)現(xiàn)Nullable那一列的Y消失,表示此列不能為空。且在插入數(shù)值的時候此列必須添加數(shù)值,否則會報錯。

取消非空約束使用alter方法:alter table test1 modify Author null; 設(shè)置test1的Author可以

唯一性約束強(qiáng)調(diào)所在的列不允許有相同的值,但可以有多個Null。

其定義比主鍵約束弱,即他的列允許有空值(主鍵不允許有空值),唯一性約束的主要作用是保證在除主鍵外,其他列值得唯一性。

即:直接在列后面添加unique,

或在列后面添加 constraint 約束名 unique,

或在最后添加constraint 約束 unique(列名),

或者alter table 表名 add constraint 約束名 unique(列名);

建議使用的方法為alter和在最后添加最后添加constraint 約束 unique(列名)。

注:添加約束名的好處為:便于刪除操作,在刪除時需要通過約束名來完成操作。同時如果不添加約束名則系統(tǒng)會自動生成約束名,在表移動等操作時,約束名也會更改,會造成后期操作的麻煩。

取消唯一性約束:alter table test3 drop constraint QQ_UK2;

主鍵約束唯一地標(biāo)識了每一行記錄(非空+唯一),在一個表中,最多只能有一個主鍵約束,主鍵約束既可以由一個列組成,也可以由兩個或兩個以上列組成(這種稱聯(lián)合主鍵)。

具體的方法和添加唯一約束相同,建議使用的方法為alter和在最后添加最后添加constraint 約束 unique(列名)。

刪除主鍵:alter table 表名 drop constraint 約束名

外鍵約束主要是在B表中的某一列受到A表的制約,B的那一列的值只能是A內(nèi)的值,比如工資表的員工號必須受員工表的員工號限制一樣,工資表不能有不存在的員工號。

一般外鍵約束會使用兩個表進(jìn)行關(guān)聯(lián),外鍵是指"當(dāng)前表"引用"另一個表"的某一列或某幾列。在另一個表中,被引用的列必須具有主鍵約束或者唯一性約束,不存在的數(shù)據(jù)不能出現(xiàn)在當(dāng)前表的對應(yīng)列中。一般情況下當(dāng)刪除被引用表中數(shù)據(jù)時,該數(shù)據(jù)也不能出現(xiàn)在外鍵列中,如果存在則刪除失敗。

刪除外鍵約束:alter table test5_1 drop constraint FK_test_5_1;

check約束是為了讓表中某字段值只能輸入固定的值。

check設(shè)置數(shù)值范圍:constraint check 表名 check (列名 between 小范圍 and 大范圍);

設(shè)置為大寫:constraint check 表名 check (列名 = upper(列名));

取消 alter table test6_2 drop constraint check_test_6_2;

默認(rèn)約束是設(shè)置列的默認(rèn)值,即當(dāng)插入一行時,若不給出該列的值,就用默認(rèn)值代替。

結(jié)果:在添加數(shù)據(jù)的時候,如果在設(shè)置有默認(rèn)值的列沒有添加數(shù)據(jù)則會把默認(rèn)值添加進(jìn)去。

取消默認(rèn)約束 alter table test2 modify BOOKNAME default null;

注:

add用于修改字段類型和長度的(即修改字段的屬性)

modify修改表的數(shù)據(jù)結(jié)構(gòu)。

update是修改數(shù)據(jù)內(nèi)容的。

drop是刪除數(shù)據(jù)內(nèi)容。


文章題目:oracle如何取消唯一 oracle刪除唯一約束
分享路徑:http://weahome.cn/article/hhhjjg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部