MySQL如何判斷某表是否存在主鍵,如果存在就刪除主鍵,如果

2021-03-29 00:23:58 字數 5679 閱讀 4710

1樓:旺理財

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怎麼寫

2樓:乖寶寶

主要是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

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

如何使用一條mysql語句實現如果查詢到的資料不存在就建立

7樓:山頂與山腳

一條語句實復現的方法不制如儲存過程方便,而且不如儲存過程效率高,樓主寫個儲存過程會比較好

insert into log (date, ip) select '2014-01-01' as date, '192.168.1.

1' as ip from log where not exists ( select * from log t where t.data = '2014-01-01' and t.ip = '192.

168.1.1')

8樓:匿名使用者

mysql 有判斷語法

有四種方式進行判斷:1. show tables like '%tb_bp_d_case%';2.

select table_name from information_schema.tables wheretable_schema='dbname' and table_name='tablename' ;3. 如果表不存在就建立這個表,那麼可以直接用 create table if not exists tablename 這樣版的指令來建立,權不需要先去查詢表是否存在。

4. 從模板表建立表:create table if not exists like old_table_name;

自己去套

9樓:匿名使用者

-- 我這裡

抄假襲設你那個bai  id 是du

自動遞增

zhi的主

dao鍵.

insert into log (date,  ip)select  '2014-01-01', '192.168.1.1'

from  dual

where  not  exists (

select *

from log  t

where  t.data = '2014-01-01'  and  t.ip = '192.168.1.1')

10樓:風華少年

這裡有答案

存在則更新,否則新增(on duplicate key update)(mysql)

11樓:匿名使用者

你把這張表的來 date和ip欄位聯合設定為唯一索源引。

alter table `

bailog` add unique `date_ip` (`date`, `ip`);

然後你du就大膽的insert資料吧。有zhi重複的就報錯插入失dao

敗。然後接著插入下一條就ok。

12樓:匿名使用者

insert into log (date, ip) select '2014-01-01' as date, '192.168.1.

1' as ip from log where not exists (

select *

from log t

where t.data = '2014-01-01' and t.ip = '192.168.1.1')

mysql如何使用sql語句判斷 一個記錄是否存在,如果存在就更新記錄中的一個屬性值把checked從0變為1

13樓:匿名使用者

update table_name

set checked=1

where macaddr="00:00:00:00:00:01" ;

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

14樓:匿名使用者

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

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

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

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);

***mit; ----

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;

15樓:dl_會飛的青蛙

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

16樓:匿名使用者

**看不來

出什麼問題,源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

mysql如果刪除資料根據主鍵查詢是不是就不用加limit 1了

17樓:匿名使用者

其次,刪除資料是非常危險的操作,如果你明確知道值刪除1條資料,還是建議加上limit 1.

不建議只根據主鍵刪除資料,因為可能會誤刪,建議再加些其他條件.

mysql在表中定義主鍵和候選鍵,並且兩鍵都為非空,刪除主鍵後,為什麼候選鍵變為主鍵? 5

18樓:折柳成萌

1、主復鍵(primary key)吧:一張表制(關係)的一個列(屬性)bai或多個列可以作du為主鍵,但是前zhi

提是讓這個列作dao主鍵,這個列就能保證該列下的各個行(元組)的值不能相同,比如說用姓名屬性作主鍵的話,那麼這個主鍵就不一定可以,如果有兩個人是同樣的名字的話,就不能做到該屬性下的各個元組資料的值不同,如果用阿拉伯數字作主鍵就是一個很好的選擇。

2、外來鍵(foreign key):一張表(關係)的列(屬性)它同時存在表1和表2中,它不是表1的主鍵,而是表2的主鍵,就可以說他是表1的外來鍵。

3、候選鍵(candidate key):能唯一標識表(關係)中行(元組)的列(屬性),則稱該屬性為候選鍵,也稱 候選關鍵字 或 候選碼;由此來看候選鍵可以不只一個,還看一看得出的就是主鍵同時它也是候選鍵。

表中有主鍵然後怎麼判斷在其他表中是否存在外來鍵

19樓:匿名使用者

sql2000的話,可以這麼看:

1、在企業管理器中找到要看的表的資料庫

2、在該資料庫的關係圖中建立新的資料庫關係圖(建議把所有表選進來)3、在新建的關係圖中有連線線的說明兩張表有關係(外來鍵關係)

VB如何判斷登錄檔某個值是否存在

用api可以實現的。用vb6還是vb.net?如何判斷一個登錄檔項是否存在 regopenkeyex vb宣告 declare function regopenkeyex lib advapi32.dll alias regopenkeyexa byval hkey as long,byval lp...

有沒有什麼MYSQL語句可以判斷表是否存在並且建立

create table if not exists tt like cyx 這樣建立的tt和cyx的表結構式一樣的吧?我覺得乾脆建立個儲存過程被,反正呼叫一次就ok了 mysql中怎麼判斷一個表是否存在 1.show tables like tb bp d case 2.select table ...

python如何判斷self屬性是否存在

有關這個問題 有三種解決辦法 方法一 這就要使用一個函式 hasattr object,name 下面看下函式hasattr 的用法 可以通過返回值來判斷!方法二 用dir來判斷 含義 如果objlist物件裡面存在att屬性,則列印出改屬性!方法三 含義 通過異常捕捉來實現邏輯!varname i...