Bug #44890 | Foreign Keys: rename fails on temporary table | ||
---|---|---|---|
Submitted: | 14 May 2009 23:38 | Modified: | 18 May 2009 15:27 |
Reporter: | Peter Gulutzan | Email Updates: | |
Status: | Not a Bug | Impact on me: | |
Category: | MySQL Server: General | Severity: | S3 (Non-critical) |
Version: | 6.1.0-alpha | OS: | Linux (SUSE 11 64-bit) |
Assigned to: | Dmitry Lenev | CPU Architecture: | Any |
[14 May 2009 23:38]
Peter Gulutzan
[15 May 2009 15:05]
MySQL Verification Team
Thank you for the bug report. Verified as described: miguel@hegel:~/dbs/6.1st$ bin/mysql -uroot test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 6.1.0-alpha-debug Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create table t1 (s1 int primary key); Query OK, 0 rows affected (0.08 sec) mysql> create table t2 (s1 int references t1(s1) -> on update restrict on delete restrict); Query OK, 0 rows affected (0.18 sec) mysql> create temporary table t2 (s1 int); Query OK, 0 rows affected (0.01 sec) mysql> rename table t2 to t3; ERROR 1811 (HY000): Foreign key error: you cannot use 'RENAME TABLE' statement because 't2' table is in a relationship mysql>
[18 May 2009 15:27]
Dmitry Lenev
Additional investigation shows that our RENAME TABLE statement cannot be used to rename temporary tables. The 6.0 manual says (see http://dev.mysql.com/doc/refman/6.0/en/rename-table.html): --- You cannot use RENAME to rename a TEMPORARY table. However, you can use ALTER TABLE instead: mysql> ALTER TABLE orig_name RENAME new_name; --- I.e. in the above situation RENAME TABLE is supposed to rename non-temporary table and not temporary table as you have expected (and this is what actually happens if you remove foreign key definitions from the example). Therefore I think an error message that you get in is the appropriate error message for this situation. I am closing this report as "Not a Bug". Please feel free to re-open it if you disagree with my analysis!