sql rename table表重命名分析实例

rename table语法
rename table tbl_name to new_tbl_name    [, tbl_name2 to new_tbl_name2] ...本语句用于对一个或多个表进行重命名。

重命名操作自动进行,这意味着当重命名正在运行时,其它线程不能读取任何表。例如,如果您有一个原有的表old_table,您可以创建另一个具有相同结构的空表new_table,然后用此空表替换原有的表:

create table new_table (...);rename table old_table to backup_table, new_table to old_table;如果此语句用于对多个表进行重命名,则重命名操作从左至右进行。如果您想要交换两个表的名称,您可以这样做(假设不存在名称为tmp_table的表):

rename table old_table to tmp_table,             new_table to old_table,             tmp_table to new_table;只要两个数据库教程位于同一文件系统中,您还可以对表进行重命名,把表从一个数据库中移动到另一个数据库中:

rename table current_db.tbl_name to other_db.tbl_name;当您执行rename时,您不能有被锁定的表,也不能有处于活性状态的事务。您还必须拥有原表的alter和drop权限,以及新表的create和insert权限。

如果mysql教程对多个表进行重命名时遇到了错误,mysql会对所有已被重命名的表进行反向重命名,返回到原来的状态。

只要您不尝试通过重命名把视图加入另一个数据库中,则rename table也可以用于视图

陆上到mysql后,use test改变当前数据库,具体步骤如下所示:

mysql> use test

reading table information for completion of table and column names

you can turn off this feature to get a quicker startup with -a

database changed

mysql> show tables; //查看表,有关show命令的用法本人博客有,请另外参考

+----------------+

| tables_in_test |

+----------------+

| articles       |

| me             |

| mytime         |

+----------------+

3 rows in set (0.01 sec)

mysql> desc mytime;

+-------+-----------+------+-----+-------------------+-------+

| field | type      | null | key | default           | extra |

+-------+-----------+------+-----+-------------------+-------+

| f1    | datetime  | yes  |     | null              |       |

| f2    | timestamp | no   |     | current_timestamp |       |

+-------+-----------+------+-----+-------------------+-------+

2 rows in set (0.02 sec)

mysql>   select * from mytime;

+---------------------+---------------------+

| f1                  | f2                  |

+---------------------+---------------------+

| 2008-12-18 17:32:48 | 2008-12-18 17:32:48 |

| 1234-12-12 11:23:45 | 0000-00-00 00:00:00 |

| 2034-12-12 11:23:45 | 2008-12-18 17:39:37 |

+---------------------+---------------------+

3 rows in set (0.03 sec)

mysql> create table  my  select * from mytime;

query ok, 3 rows affected (0.01 sec)

records: 3  duplicates: 0  warnings: 0

此操作相当于复制表,但也可以说重命名。我们得到了和原来一样的表。如下:

mysql>   select * from my;

+---------------------+---------------------+

| f1                  | f2                  |

+---------------------+---------------------+

| 2008-12-18 17:32:48 | 2008-12-18 17:32:48 |

| 1234-12-12 11:23:45 | 0000-00-00 00:00:00 |

| 2034-12-12 11:23:45 | 2008-12-18 17:39:37 |

+---------------------+---------------------+

3 rows in set (0.00 sec)

此时我们可以删除原来的mytime表

mysql> drop table mytime;

query ok, 0 rows affected (0.00 sec)

我们也可以用专门的sql语句实现。那就是rename命令,如下:

mysql> rename table mytime to my;

query ok, 0 rows affected (0.00 sec)

mysql>   select * from  mytime ;

error 1146 (42s02): table 'test.mytime' doesn't exist

mysql>   select * from  my ;

+---------------------+---------------------+

| f1                  | f2                  |

+---------------------+---------------------+

| 2008-12-18 17:32:48 | 2008-12-18 17:32:48 |

| 1234-12-12 11:23:45 | 0000-00-00 00:00:00 |

| 2034-12-12 11:23:45 | 2008-12-18 17:39:37 |

+---------------------+---------------------+

3 rows in set (0.00 sec)

还有就是alter table 表名1 rename to 表名2 ,如下所示:

mysql> alter table my rename to mytime;

query ok, 0 rows affected (0.01 sec)

一些其实实例语名

##mysql重命名表,建立外键,增、删、改列名实例

##增加到某个字段之后
alter table tb_nippon_mms_info add province varchar(50) default null after retcode;
alter table tb_nippon_mms_info add city varchar(50) default null after province;

##增加到某个字段之前
alter table tb_nippon_mms_info add province varchar(50) default null before retcode;
alter table tb_nippon_mms_info add city varchar(50) default null before province;

##删除名字为states的列
alter table tb_nine_integral_mo_info drop  column states ;

##改变手机号码字段为约束键
alter table business.tb_nine_ticket_popedom change phone  phone  varchar(50)  not null unique;

##改变列名flag为states
alter table tb_nine_integral_mo_info change flag  states tinyint(1);

–重命名表
rename table t_softwareport to software_port;

–建立外键
alter table software_port add constraint fk_software_port_softwareprocessid foreign key (softwareprocessid)
references software_process (id) on delete restrict on update restrict;

 

时间: 2024-09-15 23:28:31

sql rename table表重命名分析实例的相关文章

Java实现文件批量重命名具体实例_java

Windows操作系统可以实现重命名文件操作,却不能实现批量重命名.本实例实现了批量重命名功能,可以将一个文件夹内同一类型的文件按照一定的规则批量重命名.用户可以给出重命名模板,程序可以根据模板对相应的文件进行重命名.此外,还可以在重命名模板中添加特殊符号,程序会将这些特殊符号替换成重命名后的文件编号. 思路分析: 1.先看视图层,需要一些JLabel控件分别显示指示用户的信息,三个JTextField控件分别显示所选路径.输入文件名模板即输入扩展名,两个JButton控件分别用来浏览文件夹和开

PowerShell批量文件重命名操作实例_PowerShell

总算发现PowerShell相对于CMD来说实用的地方了. 事情是这样的,我下载了一些美剧(抱歉,看完会删的),通常文件名都比较长,包含了很多我不需要的信息,,比如: 复制代码 代码如下: 别对我撒谎.Lie.To.Me.S02E11.Chi_Eng.HDTVrip.720×396-YYeTs人人影视V2.rmvb 别对我撒谎.Lie.To.Me.S02E12.Chi_Eng.HDTVrip.720×396-YYeTs人人影视.rmvb 别对我撒谎.Lie.To.Me.S02E13.Chi_En

存储过程 清理数据/删除表/重命名表

在做开发的过程中,会往数据库里写入很多测试的垃圾数据,到数据库需要正式发布的时候,这些测试数据必须清理掉.前面有同事用一条条delete 命令,组合成一个SQL文件去执行,很冗长,也很繁琐.于是思考能否做成一个通用的存储过程,只需要传入需要清理的数据库名称,然后自动清除所有的测试数 据呢?晚上找时间写了如下的存储过程,在MYSQL5.1.42版本测试通过. Sql代码   CREATE PROCEDURE Clear_Table_Data(       DB_NAME varchar(50) #

实现对Access数据库表重命名的一段代码_应用技巧

ACCESS数据库不支持直接利用SQL语句实现更改表名,或者字段名,但可以ADOX对象来实现,范例代码如下: 复制代码 代码如下: <% Call RenameTable("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\example.mdb", "test", "changed") Sub RenameTable (conStr, oldName, newName) 'Has to be

实现对Access数据库表重命名的一段代码

ACCESS数据库不支持直接利用SQL语句实现更改表名,或者字段名,但可以ADOX对象来实现,范例代码如下: 复制代码 代码如下:<% Call RenameTable("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\example.mdb", "test", "changed") Sub RenameTable (conStr, oldName, newName) 'Has to be 

SQL Server 2000中重命名数据库

执行下面三行SQL语句: EXEC sp_dboption 'OldDbName', 'Single User', 'TRUE' EXEC sp_renamedb 'OldDbName', 'NewDbName' EXEC sp_dboption 'NewDbName', 'Single User', 'FALSE'

excel工作表批量重命名

  方法一.打开excel表格,找到下面的工作表sheet1.sheet2.sheet3栏,选择要改名的工作表.比如sheet1,单击"格式→工作表→重命名"命令.这时工作表的标签上名字将被反白显示.然后在标签上输入新的表名即可. 方法二.或者你直接双击工作表标签即可重新命名.注意我们在excel命名工作表命名规则:不会区分英文大小写. 那么在excel中是如何批量重命名工作表呢? 其实我们这里就需要VBA代码来进行实现.下面以一个简单的案例为例,比如我们工作表有几十个,现在我要将这几

Excel表格给工作表加颜色或重命名?

我相信各位都知道给Excel表格工作表重命名了,双击或右击都可以重命名了,但要给它加颜色我相信各位朋友就不知道了吧,今天我们就一起来看看吧. 1.用Excel 打开表格,然后如下所示有工作溥了,我们如果要更名称.如图 2如我们选中更名的然后右击,在弹出菜单点击"工作表标签颜色"选项,再选择颜色.如图 3.此时工作表标签颜色添加完成了.如图 4.然后在此我们点击"重命名".如图 5.输入命名的文字,然后点击另一个工作表,重命名就完成了,用同样的方法进行更改下一个工作表

mssql server数据库重命名方法

mssql server数据库重命名方法 create proc killspid (@dbname varchar(20))         as         begin         declare     @sql     nvarchar(500),@temp   varchar(1000)     declare     @spid     int         set     @sql='declare     getspid     cursor     for