• mysql教程
  • Linux和windows下用mysql c++ library操作Mysql数据库
  • mysql 5.7下载安装配置详细教程
  • Python的MySQLdb模块安装
  • mysql jdbc连接mysql数据库步骤及常见参数详解
  • Win7 64位下mysql 下载、安装与配置图文教程
  • mysql update语句的用法详解
  • mysql 存储过程实例和基本语法
  • MySQL Workbench的下载安装与使用教程
  • mysql安装图解
  • mysql 命令大全及导入导出表结构或数据
  • mysql数据库下载安装教程和使用技巧
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
  • Mysql查询错误:ERROR:no query specified原因
  • MySQL 重装MySQL后, mysql服务无法启动
  • php安装完成后如何添加mysql扩展
  • 为什么用linux安装盘安装了mysql后,启动mysql,提示找不到mysql.sock文件?
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 請教,在redhat linux7.2+mysql 中,系統提示mysql已啟動,網頁卻不能訪問mysql?
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式
  • centos安装mysql,连接时'Can't connect to local MySQL server through socket '/tmp/mysql
  • VS2012+MySQL+SilverLight5的MVVM开发模式介绍
  • 求解释: useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
  • MySQL索引基本知识
  • 在Linux内安装了Mysql,无法进入Mysql.
  • Mysql设置查询条件(where)查询字段为NULL
  • 怎样在linux终端输入mysql直接进入mysql?
  • mysql中字符串和时间互相转换的方法(自动转换及DATE_FORMAT函数)
  • c++中关于#include <mysql/mysql.h>的问题?
  • java将类序列化并存储到mysql(使用hibernate)
  • mysql -u root mysql 怎么解释
  • Mysql索引类型:B-Tree索引介绍
  • mm.mysql那里可以下载?www.mysql.com根本下载不了。谢谢了
  •  
    当前位置:  数据库>mysql

    Mysql增加主键或者更改表的列为主键的sql语句

     
    分享到:
        发布时间:2014-3-18  


        本文导语:  添加表字段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...

    添加表字段

    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语句块如下:

    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 null 
    begin 
    select @cmd='alter table '+ @tablename+ ' drop constraint '+ @defname 
    --print @cmd 
       exec (@cmd) 
     end 
    else 
     set @defname='PK_'+@keyname 
    select @cmd='alter table '+ @tablename+ ' ADD constraint '+ @defname +' PRIMARY KEY CLUSTERED('+@keyname+')' 
       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


    • 本站(WWW.169IT.COM)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
      本站(WWW.169IT.COM)站内文章除注明原创外,均为转载,整理或搜集自网络.欢迎任何形式的转载,转载请注明出处.
      转载请注明:文章转载自:[169IT-IT技术资讯]
      本文标题:Mysql增加主键或者更改表的列为主键的sql语句
    相关文章推荐:


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

    浙ICP备11055608号