Mysql主键相关的sql语句集锦
添加表字段
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
相关文章
- MySQL Error number: MY-011530; Symbol: ER_GRP_RPL_MEMBER_STOP_RPL_CHANNELS_ERROR; SQLSTATE: HY000 报错 故障修复 远程处理
- sql语句优化之SQL Server(详细整理)
- SQL Error (1055) sql_mode=only_full_group_by详解数据库
- MySQL 的统计语句:分析与汇总数据。(mysql的统计语句)
- 掌握MySQL高级语句,实现数据库管理的强大功能(mysql高级语句)
- 重置MySQL数据库密码:一步搞定(重置mysql数据库密码)
- MySQL 查询语句优化:提升查询效率的必备技能(mysql查询语句优化)
- 掌握MySQL循环语句,实现数据更强大处理功能(mysql循环语句)
- MySQL 安装步骤:一个易懂的指南(mysql安装文件)
- 比较MySQL和SQL Server的区别(mysql和sqlserver的区别)
- 『MySQL 分组查找最大值』(mysql分组最大值)
- MySQL默认引擎:InnoDB存储引擎(mysql默认引擎是什么)
- 轻松实现PHP操控MySQL语句(php执行mysql语句)
- MySQL命令运行SQL语句实战指南(mysql命令运行sql)
- 如何在Qt应用程序中访问MySQL数据库?(qt访问mysql)
- sql三米长的MySQL SQL:所见皆可攻破(3m mysql)
- MySQL数据导出格式:CSV、XLSX和SQL等常见格式(mysql数据导出格式)
- MySQL最新版本:极速提升数据库性能!(mysql的最新版本)
- MySQL同步部分表的操作方法(mysql 同步 部分表)
- MySQL中INT类型的位数是多少(mysql中int多少位)
- 解决MySQL语句执行超时的方法(c mysql执行超时)
- MySQL批量执行多条语句的方法(c mysql多条语句吗)
- 数据使用CMD清除MySQL无用数据的技巧(cmd 清除mysql)
- 解决cmd控制台缺失MySQL(cmd没有mysql)
- MySQL删除数据库的语句(mysql中删除库的语句)
- MySQL函数创建,让SQL操作更高效(mysql中函数的创建)
- 25个MySQL不经常使用的语句(mysql不常用语句)