mysql 主键删除数据库_如何删除或者添加主键?

在MySQL数据库中数据表之间的联系是奇妙的,一旦删了某个表的主键,可能会引起其他表的外键的设计,那么怎样在保证外键不变的情况下删除或者添加主键呢?

f5dbf40597c74a31accc915f862a0ad2.png

mysql添加删除主键是学习mysql过程中非常重要的一环,下文就mysql主键进行了详细的阐述,供您参考学习,希望对您有所帮助。

mysql添加删除主键操作是非常基本的操作,下面就将教您mysql添加删除主键的方法,如果您是刚刚接触mysql数据库的新人,不妨一看。

修改mysql的字符集:

在安装mysql5.0时可以设置好mysql的字符集,一般使用utf8的字符集

1查看建立表“tablename”的sql语句

Showcreatetabletablename;//查看建立表“tablename”的sql语句

|maos_mail_batch|CREATETABLE`maos_mail_batch`(

`ID`varchar(32)charactersETLatin1NOTNULL,

`BATCH_TIME`varchar(30)charactersetlatin1NOTNULL,

`BATCH_INTRODUCE`varchar(2000)charactersetlatin1defaultNULL,

`BATCH_SUM`int(11)defaultNULL,

`BATCH_STATE`varchar(1)charactersetlatin1defaultNULL,

PRIMARYKEY(`ID`)

)ENGINE=InnoDBDEFAULTCHARSET=utf8|

2修改数据库和表的字符集

alterdatabaSEMaildbdefaultcharactersetutf8;//修改数据库的字符集

altertablemailtabledefaultcharactersetutf8;//修改表的字符集

如果您想要把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集,应使用如下语句:

ALTERTABLEtbl_nameCONVERTTOCHARACTERSETcharset_name;

警告:前面的操作转换了字符集之间的列类型。如果您有一列使用一种字符集(如latin1),但是存储的值实际上使用了其它的字符集(如utf8),这种情况不是您想要的。此时,您必须对这样的列进行以下操作。

ALTERTABLEt1CHANGEc1c1BLOB;

ALTERTABLEt1CHANGEc1c1TEXTCHARACTERSETutf8;

这种方法能够实现此功能的原因是,当您转换到BLOB列或从BLOB列转换过来时,并没有发生转换。

3mysql的主键问题:

Mysql的两种主键。Primarykey和notnullauto_incriment在建立mysql表时,给一个字段添加了主键primarykey在insert数据时可以不用insert主键,mysql会自动添加0,但是在第二次insert时没有填写值mysql数据库还是默认添加0,会导致有重复的主键,这是不可以的。所有在定义了primarykey时,在insert数据时要给主键填写值。

在建立mysql表时,给一个字段添加了主键notnullauto_increment=1;

这也是一个主键。时自增长的以1为开始。这个字段是可以不用填写值的,mysql数据库会自动给填写值,不会出现primarykey的状况。

Altertabletbaddprimarykey(id);

Altertabletbchangeididint(10)notnullauto_increment=1;

4删除自增长的主键id

先删除自增长在删除主键

Altertabletbchangeididint(10);//删除自增长

Altertabletbdropprimarykey;//删除主建

mysql数据库主键删除和添加是mysql数据库的基本操作,作为初学者,要想学好数据库,需要对主键的设计有一定的理解,并且能够很自如的添加和删除主键。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值