mysql> CREATE TABLE runoob_transaction_test( id int(5)) engine=innodb; # 创建数据表
Query OK, 0 rows affected (0.04 sec)
mysql> select * from runoob_transaction_test;
Empty set (0.01 sec)
mysql> begin; # 开始事务
Query OK, 0 rows affected (0.00 sec)
mysql> insert into runoob_transaction_test value(5);
Query OK, 1 rows affected (0.01 sec)
mysql> insert into runoob_transaction_test value(6);
Query OK, 1 rows affected (0.00 sec)
mysql> commit; # 提交事务
Query OK, 0 rows affected (0.01 sec)
mysql> select * from runoob_transaction_test;
+------+
| id |
+------+
| 5 |
| 6 |
+------+
2 rows in set (0.01 sec)
mysql> begin; # 开始事务
Query OK, 0 rows affected (0.00 sec)
mysql> insert into runoob_transaction_test values(7);
Query OK, 1 rows affected (0.00 sec)
mysql> rollback; # 回滚
Query OK, 0 rows affected (0.00 sec)
mysql> select * from runoob_transaction_test; # 因为回滚所以数据没有插入
+------+
| id |
+------+
| 5 |
| 6 |
+------+
2 rows in set (0.01 sec) 2、MySQL>
- 当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL>
- 在开始之前让我们先创建一张表,表名为:testalter_tbl。
root@host# mysql -u root -p password;
Enter password:*******
2 rows in set (0.00 sec)
- 删除,添加或者修改表字段
- 如下命令使用ALTER命令及DROP子句来删除以上创建表的i字段:
mysql> ALTER TABLE testalter_tbl DROP i; - 如果数据表中值剩下一个字段则无法使用DROP来删除字段。
- MySQL中使用ADD子句来向数据表中添加列,如下实例在表testalter_tbl中添加i字段,并定义数据类型:
mysql> ALTER TABLE testalter_tbl ADD i INT; - 执行以下命令后,i字段会自动添加到数据表字段的末尾:
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
- 如果你需要指定新增字段的位置,可以使用MySQL提供的关键字FRIST(设定为第一列),AFTER 字段名(设定位于某个字段之后)。
- 尝试以下ALTER TABLE 语句,在执行成功后,使用SHOW COLUMNS查看表结构的变化:
ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT FIRST;
ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT AFTER c;
- FIRST和AFTER关键字只占用于ADD子句,所以如果你想要重置数据表字段的位置就需要先使用DROP删除字段然后使用ADD来添加字段并设置位置。
- 修改字段类型以及名称:如果需要修改字段类型以及名称,你可以在ALTER命令中使用MODIFY或者CHANGE子句。
- 例如,把字段c的类型从CHAR(1)改为CHAR(10),可以执行以下命令:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10); - 使用CHANGE子句,语法上有很大的不同,在CHANGE关键字之后,紧跟着的是你要修改的字段名,然后指定新字段名以及类型,尝试以下实例:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;mysql> ALTER TABLE testalter_tbl CHANGE j j INT; - ALTER TABLE对 Null值和默认值的影响:当你修改字段时,你可以指定是否包含 NULL或者是否设置默认值。
- 以下实例,指定字段j为NOT NULL并且默认值为100:
mysql> ALTER TABLE testalter_tbl
-> MODIFY j BIGINT NOT NULL DEFAULT 100;
- 如果你不设置默认值,MySQL会自动设置该字段默认为NULL。
- 修改字段默认值:你可以使用ALTER来修改字段的默认值,尝试以下实例:
mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
mysql> SHOW COLUMNS FROM testalter_tbl;
2 rows in set (0.00 sec)
- 你也可以使用ALTER命令以及DROP子句来删除字段的默认值,如下实例:
mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
mysql> SHOW COLUMNS FROM testalter_tbl;
Changing a Table Type:
- 修改数据表类型,可以使用ALTER命令以及TYPE子句来完成。尝试以下实例,我们将表testalter_tbl的类型修改为MYISAM。
- 注意:查看数据表类型可以使用SHOW TABLE STATUS语句。
mysql> ALTER TABLE testalter_tbl ENGINE = MYISAM;
mysql> SHOW TABLE STATUS LIKE 'testalter_tbl'\G