MySQL数据库反安装教程

来源:Discuz!论坛数据库升级代码

按情况, 数据库的升级代码可以分三个类别:

1. 建立一个或多个数据表;
2. 建立一个或多个字段;
3. 添加一个或多个字段的值;

针对以上情况,我们应该怎么判断我们升级的数据库代码属于哪一种类型的呢?

好让我们拿我的作品<鲜花鸡蛋送给作者>来说吧, 这个插件就要用到上面的前两个类别,让我们先来看看第一类:

一、 建立一个表:

SQL代码
  1. CreateTABLE`cdb_felog`(
  2. `id`mediumint(20)unsignedNOTNULLAUTO_INCREMENT,
  3. `fromuser`varchar(15)NOTNULLdefault“”,
  4. `touser`varchar(15)NOTNULLdefault“”,
  5. `asfe`varchar(8)NOTNULLdefault“”,
  6. `score`int(10)NOTNULLdefault“0”,
  7. `tid`varchar(15)NOTNULLdefault“”,
  8. `aswhat`varchar(100)NOTNULLdefault“”,
  9. PRIMARYKEY(`id`)
  10. )TYPE=MYISAM

判断依据: 以 Create TABLE 开头,后面跟数据表的名字:CDB_XXX
结束标致: TYPE = ……

这类就属于上述的第一个类别:添加一个数据表!

反安装方法:

SQL代码
  1. DropTABLECDB_XXX

方法简述:这类升级代码的反安装方法很简单,不管这个表有多大,你可需要用Drop TABLE后跟数据表的名字即可,例如我的鲜花鸡蛋插件以上的升级代码,反安装的代码如下:

SQL代码
  1. DropTABLEcdb_felog

二、建立一个或多个字段:

(1)

SQL代码
  1. AlterTABLE`cdb_posts`ADD`flower`INT(10)DEFAULT“0”NOTNULL;
  2. AlterTABLE`cdb_posts`ADD`egg`INT(10)DEFAULT“0”NOTNULL;
  3. AlterTABLE`cdb_threads`ADD`flower`INT(10)DEFAULT“0”NOTNULL;
  4. AlterTABLE`cdb_threads`ADD`egg`INT(10)DEFAULT“0”NOTNULL;

或:

(2)

SQL代码
  1. AlterTABLE`cdb_members`ADD`putsum`INT(8)NOTNULL,
  2. ADD`audsum`INT(8)NOTNULL,
  3. ADD`groomsum`INT(8)NOTNULL,
  4. ADD`delesum`INT(8)NOTNULL,
  5. ADD`audit`VARCHAR(1)NOTNULL;

判断依据: 以 Alter TABLE 开头,后面跟数据表的名字:CDB_XXX,再跟 ADD,再跟字段的名称!
注意事项: 这类升级代码有种简写的方式,如果升级一个表内的字段多于一个,就可以用简化方式写

以上1)升级代码是完整的写法,2)最简写;

两者的区别就在于不用多写Alter TABLE `数据表`
在同一个数据表里升级两个或以上的字段,就可以使用这种升级方式了。

反安装方法:

1)

SQL代码
  1. AlterTABLE`数据表1`Drop`字段名1`;
  2. AlterTABLE`数据表2`Drop`字段名1`;

2)

SQL代码
  1. AlterTABLE`数据表`
  2. Drop`字段名1`,
  3. Drop`字段名1`,
  4. Drop`字段名1`;

方法简述:不管是第一个方法还是第二种方法,都可以完成对添加字段的反安装

只要把数据表1"的名字替换成添加字段的表CDB_XXX",再把字段名1替换成添加的字段名(ADD后的名字)。

例子:

以上1)的反安装代码为:

SQL代码
  1. AlterTABLE`cdb_posts`Drop`flower;
  2. AlterTABLE`cdb_posts`Drop`egg`;
  3. AlterTABLE`cdb_threads`Drop`flower`;
  4. AlterTABLE`cdb_threads`Drop`egg`;

2)的反安装代码为:

SQL代码
  1. AlterTABLE`cdb_members`Drop`,
  2. Drop`audsum`,
  3. Drop`groomsum`,
  4. Drop`delesum`,
  5. Drop`audit`;

其实大家仔细观察一下就可以看出来,这类反安装代码其实就是把升级代码中的ADD改为Drop,并把字段名后的部分代码删除即可。

三、添加一个或多个字段的值:

SQL代码
  1. InsertINTO`cdb_settings`(`variable`,`value`)VALUES(“attaopen”,“1”);
  2. InsertINTO`cdb_settings`(`variable`,`value`)VALUES(“attacoun”,“15”);

这类升级代码很少用,一段是用在SETTINGS表里。

其标致为:以Insert INTO开头,后面是数据表的名字,第一个括号里面的是要加给值的字段名,第二个括号里的值是与第一个括号里对应的,分别是加到第一个括号里字段里的。

反安装代码:

SQL代码
  1. DeleteFROM`cdb_settings`Where`variable`=“attaopen”AND`value`=“1”;
  2. DeleteFROM`cdb_settings`Where`variable`=“attacoun”AND`value`=“15”;

方法简述:

先将升级代码中的Insert INTO改为Delete FROM, 在第一个括号前加个 Where ,然后是第一个括号里的值variable,再加=号,再加第二个括号里的第一个值attaopen,如果括号里的值不止一个,那再加 ADD ,再加第一个括号里的第二个值value,再加=号,再另第二个括号里的第二个值1,如果还有更多那就再加ADD再加第一个括号里的第三个……

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇