zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Mysql主键相关的sql语句集锦

mysqlSQL 语句 相关 主键 集锦
2023-06-13 09:15:44 时间

添加表字段

altertabletable1addtransactorvarchar(10)notNull;

altertable  table1addidintunsignednotNullauto_incrementprimarykey

修改某个表的字段类型及指定为空或非空

altertable表名称change字段名称字段名称字段类型[是否允许非空];

altertable表名称modify字段名称字段类型[是否允许非空];

altertable表名称modify字段名称字段类型[是否允许非空];

修改某个表的字段名称及指定为空或非空

altertable表名称change字段原名称字段新名称字段类型[是否允许非空

删除某一字段

ALTERTABLEmytableDROP字段名;

添加唯一键

ALTERTABLE`test2`ADDUNIQUE(`userid`)

修改主键

ALTERTABLE`test2`DROPPRIMARYKEY,ADDPRIMARYKEY(`id`)

增加索引

ALTERTABLE`test2`ADDINDEX(`id`)

ALTERTABLE`category`MODIFYCOLUMN`id` int(11)NOTNULLAUTO_INCREMENTFIRST,ADDPRIMARYKEY(`id`);

修改主键的sql语句块如下:

22declare@defnamevarchar(100)
declare@cmdvarchar(500)
declare@tablenamevarchar(100)
declare@keynamevarchar(100)
Set@tablename="Temp1"
Set@keyname="id"--需要?置的key,分隔
select@defname=name
  FROMsysobjectsso
  JOINsysconstraintssc
  ONso.id=sc.constid
  WHEREobject_name(so.parent_obj)=@tablename
  andxtype="PK"
if@defnameisnotnull
begin
select@cmd="altertable"+@tablename+"dropconstraint"+@defname
--print@cmd
  exec(@cmd)
 end
else
 set@defname="PK_"+@keyname
select@cmd="altertable"+@tablename+"ADDconstraint"+@defname+"PRIMARYKEYCLUSTERED("+@keyname+")"
  exec(@cmd)

  如何取主键字段名称及字段类型--得到主键字段名

1:
SELECTTABLE_NAME,COLUMN_NAMEFROMINFORMATION_SCHEMA.KEY_COLUMN_USAGE

WHERETABLE_NAME<>"dtproperties"

2:
EXECsp_pkeys@table_name="表名"

3:
selecto.nameas表名,c.nameas字段名,k.colidas字段序号,k.keynoas索引顺序,t.nameas类型

fromsysindexesi

joinsysindexkeyskoni.id=k.idandi.indid=k.indid

joinsysobjectsooni.id=o.id

joinsyscolumnsconi.id=c.idandk.colid=c.colid

joinsystypestonc.xusertype=t.xusertype

whereo.xtype="U"ando.name="要查询的表名"

andexists(select1fromsysobjectswherextype="PK"andparent_obj=i.idandname=i.name)

orderbyo.name,k.colid