Mysql增加主鍵或者更改表的列為主鍵的sql語句

來源:互聯網
上載者:User

標籤:style   http   color   io   strong   for   ar   art   div   

                                                                                                                      www.169it.com

添加表欄位

alter table table1 add transactor varchar(10) not Null;

alter table   table1 add id int unsigned not Null auto_increment primary key

修改某個表的欄位類型及指定為空白或非空

alter table 表名稱 change 欄位名稱 欄位名稱 欄位類型 [是否允許非空];

alter table 表名稱 modify 欄位名稱 欄位類型 [是否允許非空];

alter table 表名稱 modify 欄位名稱 欄位類型 [是否允許非空];

修改某個表的欄位名稱及指定為空白或非空

alter table 表名稱 change 欄位原名稱 欄位新名稱 欄位類型 [是否允許非空

刪除某一欄位

ALTER TABLE mytable DROP 欄位 名;

添加唯一鍵

ALTER TABLE `test2` ADD UNIQUE ( `userid`)

修改主鍵

ALTER TABLE `test2` DROP PRIMARY KEY ,ADD PRIMARY KEY ( `id` )

增加索引

ALTER TABLE `test2` ADD INDEX ( `id` )

ALTER TABLE `category ` MODIFY COLUMN `id`  int(11) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (`id`);

 

修改主鍵的sql語句塊如下:

12345678910111213141516171819202122 declare @defname varchar(100)declare @cmd varchar(500)declare @tablename varchar(100)declare @keyname varchar(100)Set @tablename=‘Temp1‘Set @keyname=‘id‘ --需要設置的key,分隔select @defname= name   FROM sysobjects so    JOIN sysconstraints sc   ON so.id = sc.constid   WHERE object_name(so.parent_obj) = @tablename   and xtype=‘PK‘if @defname is not nullbeginselect @cmd=‘alter table ‘+ @tablename+ ‘ drop constraint ‘+ @defname--print @cmd   exec (@cmd) endelse set @defname=‘PK_‘[email protected]select @cmd=‘alter table ‘+ @tablename+ ‘ ADD constraint ‘+ @defname +‘ PRIMARY KEY CLUSTERED(‘[email protected]+‘)‘   exec (@cmd)

 

  如何取主鍵欄位名稱及欄位類型--得到主鍵欄位名

  1:

SELECT TABLE_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE

WHERE TABLE_NAME<>‘dtproperties‘

  2:

EXEC sp_pkeys @table_name=‘表名‘

  3:

select o.name as 表名,c.name as 欄位名,k.colid as 欄位序號,k.keyno as 索引順序,t.name as 類型

from sysindexes i

join sysindexkeys k on i.id = k.id and i.indid = k.indid

join sysobjects o on i.id = o.id

join syscolumns c on i.id=c.id and k.colid = c.colid

join systypes t on c.xusertype=t.xusertype

where o.xtype = ‘U‘ and o.name=‘要查詢的表名‘

and exists(select 1 from sysobjects where xtype = ‘PK‘ and parent_obj=i.id and name = i.name)

order by o.name,k.colid

 


本文來源:Mysql增加主鍵或者更改表的列為主鍵的sql語句

Mysql增加主鍵或者更改表的列為主鍵的sql語句

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.