a) Remove column from table 't1' - DML operations can proceed while DDL is in progress i.e. ALTER TABLE .. DROP column..
mysql >show processlist;
+-----+------+-----------+------+---------+------+----------------+----------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+------+-----------+------+---------+------+----------------+----------------------------------+
| 67 | root | localhost | test | Query | 0 | init | show processlist |
| 604 | root | localhost | test | Query | 3 | altering table | alter table t1 drop column data2 |
+-----+------+-----------+------+---------+------+----------------+----------------------------------+
2 rows in set (0.00 sec)
mysql >insert into t1 values (null,'xxxx','yyyy');
Query OK, 1 row affected (0.00 sec)
mysql >select * from t1 where id=2;
+----+----------------------------------------------------+-------+
| id | data | data2 |
+----+----------------------------------------------------+-------+
| 2 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | a |
+----+----------------------------------------------------+-------+
1 row in set (0.00 sec)
b) Add new column table 't1' - DML operations can proceed as long as they do not access the new column that is being added to the table:
mysql>show processlist;
+-----+------+-----------+------+---------+------+----------------+---------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+------+-----------+------+---------+------+----------------+---------------------------------------------------------+
| 67 | root | localhost | test | Query | 0 | init | show processlist |
| 604 | root | localhost | test | Query | 38 | altering table | alter table t1 add column data2 varchar(20) default 'a' |
+-----+------+-----------+------+---------+------+----------------+---------------------------------------------------------+
2 rows in set (0.00 sec)
mysql>insert into test.t1 values (null,'xxxx');
Query OK, 1 row affected (0.02 sec)
mysql>insert into test.t1 values (null,'xxxx','yyyy');
ERROR 1136 (21S01): Column count doesn't match value count at row 1
Thanks
ReplyDeletevery helpful. appreciate it.
ReplyDeleteAll given info was wonderful and it's very helpful for everyone. It's impressive that you are getting thoughts from this Blog..............Please contact us for Oracle Fusion Financials training details in our Erptree Training Institute
ReplyDeleteGreat Work, after reading this post I felt comfortable with this post thank you very much...
ReplyDeleteTesting Tools Training in Houston
Click Here for more information about all courses
https://www.calfre.com/USA/Texas/Houston/Testing-Tools-Training/listing
You have clearly explained about the process thus it is very much interesting and i got more information from your blog. To get more details please visit our website.
ReplyDeleteOracle Fusion PPM Training in Ameerpet