相关疑难解决方法(0)

我可以在ALTER TABLE中使用交易吗?

我是SQL事务的初学者(实际上是新手),所以我可能会遗漏一些明显的东西.

我有这个SQL代码,我试图通过phpMyAdmin运行:

START TRANSACTION;

INSERT INTO `users` VALUES(NULL, 'User A', 'user.a@example.com', '4', 'User A');
INSERT INTO `users` VALUES(NULL, 'User B', 'user.b@example.com', '3', 'User B');

ALTER TABLE `users` CHANGE `level` `level` TINYINT(3) UNSIGNED NOT NULL;
ALTER TABLE `users` CHANGE `number` `number` INT(10) UNSIGNED NOT NULL;
ALTER TABLE `users` ADD COLUMN `number` INT(10) UNSIGNED NOT NULL AFTER `id`;

COMMIT;
Run Code Online (Sandbox Code Playgroud)

如您所见,第二个ALTER导致#1054 - Unknown column 'number' in 'users'错误.

但是,当它发生在phpMyAdmin中时,我可以看到,前两个INSERT(或整个事务)没有回滚.该users表包含两个新记录.

我错过了什么?phpMyAdmin不支持交易?或者我不明白,交易实际上是如何运作的,这是很正常的,这两个INSERTs在发生错误的情况下不会回滚?

mysql sql transactions phpmyadmin rollback

7
推荐指数
1
解决办法
7516
查看次数

标签 统计

mysql ×1

phpmyadmin ×1

rollback ×1

sql ×1

transactions ×1