判斷主鍵是否存在,存在則刪除,用SQL怎麼寫

2021-04-26 06:14:57 字數 3918 閱讀 4825

1樓:乖寶寶

主要是bai

查詢all_tables表的dutable_name和owner,如果表存在zhi,dao則執行execute immediate 'drop table table_name';sql**

版--判斷表是否存在,如果存在則刪權除declarenum number;beginselect count(1) into num from all_tables where table_n

mysql如何判斷某表是否存在主鍵,如果存在就刪除主鍵,如果不存在就建立主鍵

2樓:旺理財

1查詢主鍵

存在與否 如果存在count值為1 不存在count值為0select count(*) primarynumfrom information_schema.key_column_usage t

where t.table_name ='test'

如果結果 >= 1,則表示有主鍵。

2刪除存在的主鍵

alter table test drop primary key;

3.建立主鍵

alter table test add primary key(id);

sql求助:想建立一個表,但在建立前先判斷是否存在。如存在就刪除它,不存在就建立。

3樓:他岸有魚

----建立

復一個表

制aaa--------------start-----------------

if exists (select * from sysobjects where id = object_id(n'[aaa]') and objectproperty(id, n'isusertable') = 1)

drop table [aaa] ---如果已存在aaa表,則先刪除

---建立aaa表

create table [aaa](

[id] uniqueidentifier not null ,[code] nvarchar(30) ,[name] nvarchar(200) )

4樓:匿名使用者

--判斷來表是自否存在

baiif exists (select * from sysobjects where name='returnvisit')

--刪除du表zhi

drop table returnvisit--建立dao表

create table returnvisit(rid uniqueidentifier not null,--主鍵)

5樓:匿名使用者

if exists(select * from sys.tables where name='test_table')

drop table test_tablegocreate table test_table(test_id int identity(1,1) primary key not null ,

test_key varchar(10) not null ,test_value varchar(20) not null ,test_type int not null ,test_belongto int,

test_grade int default 1,test_remark varchar(50),test_visible bit default 1);go

6樓:安與生

if exists (select * from sys.objects where object_id = object_id(n'tablename') and type in (n'u'))

drop table tablename

如何使用sql語句判斷一個資料庫是否已經存在

7樓:

1.資料

庫if exists(select 1 from master..dbo.sysdatabases where name='example')

print 'database existed'

else

print 'database not existed'

2.表if exists(select 1 from sysobjects where name ='表名' and type in ('s','u'))

print 'exists table'

else

print 'not exists table'

8樓:get格調寵兒

讓兩個資料庫能直接建立分散式資料庫併入同一個事務那就簡單了,像 oracle 有 database link 能做到。db2 也有類似的方式。

insert into b.table2 (d)select c

from a.table1 a

left join b.table2 b on a.c = b.dwhere b.d is null

sql語句,怎樣判斷一個欄位中是否存在某一個值

9樓:繞到夢魂深處

寫法如下: select * from mytable where field like '%查詢的值%'

具體替換表名和欄位名

10樓:匿名使用者

sql不是有instr函式麼?

instr('abcdefghiabc', 'def') ⇒ 4

沒查到會返回0

寫一段pl/sql程式**,當向表中插入資料時,先查詢是否存在相同主鍵,如果不存在則插入,存在則提醒。

11樓:匿名使用者

首先建立這個函式應該是沒問題的吧

首先最好的建議是使用觸發器

另外如果要想在函式中使用dml語句的話,建議增加pragma autonomous_transaction;和commit;那麼你的函式建議修改為如下(表名和列名修改對照修改過來):

create or replace function fun_charge_s(x in number) return number as

pragma autonomous_transaction; ----

s_warn number;

begin

select count(*) into s_warn from test2 where year = x;

if nvl(s_warn, 0) = 0 then

insert into test2 (year) values (x);

commit; ----

dbms_output.put_line('可以插入資料。');

return 0;

else

dbms_output.put_line('存在相同sno,不可以插入。');

return s_warn;

end if;

exception

when others then

dbms_output.put_line(sqlerrm || sqlcode);

end;

12樓:dl_會飛的青蛙

報的是什麼錯誤 貼出來!~

13樓:匿名使用者

**看不來

出什麼問題,源count(*) 必然會返回值的,不需要用nvl函式 直接 if s_warn=0 then ..

不要用count(*) 很耗費資源的,要用existsselect case when exists(select * from s_warn where sno=x) then 1 else 0 end into s_warm from dual

fortran判斷資料夾是否存在

我是這麼做的 program abc use dfport 要用dfport,很關鍵 implicit none character 20 infile1,infile2,infile3 logical istatus1,istatus2 infile2 c abcd 定義一個字串,代表要判斷是否存...

sql語句,怎樣判斷欄位中是否存在某值

寫法如下 select from mytable where field like 查詢的值 具體替換表名和欄位名 sql不是有instr函式麼?instr abcdefghiabc def 4 沒查到會返回0 sql語句,怎樣判斷一個欄位中是否存在某一個值 可以參考下面的描述 instr c1,c...

sql語句怎樣判斷欄位中是否存在某值

可以參考下面的描述 instr c1,c2,i,j 在一個字串中搜尋指定的字元,返回發現指定的字元的位置 c1 被搜尋的字串 c2 希望搜尋的字串 i 搜尋的開始位置,預設為1 j 出現的位置,預設為1 sql select instr oracle traning ra 1,2 instring ...