You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.9 KiB

  1. CREATE TABLE t (c1 INT PRIMARY KEY, c2 INT NOT NULL, c3 INT) ENGINE=InnoDB;
  2. INSERT INTO t VALUES (1,2,3),(4,5,6),(7,8,9);
  3. ALTER TABLE t CHANGE c1 c1 INT NULL FIRST, ALGORITHM=INPLACE;
  4. affected rows: 0
  5. info: Records: 0 Duplicates: 0 Warnings: 0
  6. set @old_sql_mode = @@sql_mode;
  7. set @@sql_mode = 'STRICT_TRANS_TABLES';
  8. ALTER TABLE t MODIFY c3 INT NOT NULL, ALGORITHM=INPLACE;
  9. affected rows: 0
  10. info: Records: 0 Duplicates: 0 Warnings: 0
  11. set @@sql_mode = @old_sql_mode;
  12. ALTER TABLE t CHANGE c2 c2 INT, CHANGE c2 c2 INT NOT NULL;
  13. ERROR 42S22: Unknown column 'c2' in 't'
  14. ALTER TABLE t MODIFY c2 INT, MODIFY c2 INT NOT NULL;
  15. ERROR 42S22: Unknown column 'c2' in 't'
  16. ALTER TABLE t MODIFY c2 INT UNSIGNED, MODIFY c2 INT;
  17. ERROR 42S22: Unknown column 'c2' in 't'
  18. ALTER TABLE t MODIFY c2 CHAR(1) NOT NULL, MODIFY c2 INT NOT NULL;
  19. ERROR 42S22: Unknown column 'c2' in 't'
  20. ALTER TABLE t CHANGE c2 c2 INT NOT NULL;
  21. affected rows: 0
  22. info: Records: 0 Duplicates: 0 Warnings: 0
  23. ALTER TABLE t MODIFY c2 INT NOT NULL;
  24. affected rows: 0
  25. info: Records: 0 Duplicates: 0 Warnings: 0
  26. connect con1,localhost,root,,;
  27. connection con1;
  28. SET SQL_MODE='STRICT_ALL_TABLES';
  29. UPDATE t SET c2=NULL;
  30. ERROR 23000: Column 'c2' cannot be null
  31. SELECT * FROM t;
  32. c1 c2 c3
  33. 1 2 3
  34. 4 5 6
  35. 7 8 9
  36. connection default;
  37. ALTER TABLE t MODIFY c2 INT, ALGORITHM=INPLACE;
  38. connection con1;
  39. BEGIN;
  40. UPDATE t SET c2=NULL;
  41. SELECT * FROM t;
  42. c1 c2 c3
  43. 1 NULL 3
  44. 4 NULL 6
  45. 7 NULL 9
  46. ROLLBACK;
  47. SELECT * FROM t;
  48. c1 c2 c3
  49. 1 2 3
  50. 4 5 6
  51. 7 8 9
  52. disconnect con1;
  53. connection default;
  54. ALTER TABLE t MODIFY c2 INT NULL, ALGORITHM=INPLACE;
  55. SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES
  56. WHERE NAME='test/t';
  57. TABLE_ID NAME FLAG N_COLS SPACE FILE_FORMAT ROW_FORMAT ZIP_PAGE_SIZE SPACE_TYPE
  58. # test/t 33 6 # Barracuda Dynamic 0 Single
  59. DROP TABLE t;
  60. CREATE TABLE t1(c1 INT) ENGINE=InnoDB;
  61. ALTER TABLE t1 ADD CONSTRAINT UNIQUE KEY i1(c1);
  62. ALTER TABLE t1 CHANGE c1 c1 INT NOT NULL,ADD KEY(c1);
  63. DROP TABLE t1;