| Bug #14693 | Cannot create a new column default after column created | ||
|---|---|---|---|
| Submitted: | 7 Nov 2005 8:04 | Modified: | 6 Dec 2005 21:44 | 
| Reporter: | [ name withheld ] | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) | 
| Version: | 5.0.16-BK, 5.0.15-nt | OS: | Linux (Linux, Windows) | 
| Assigned to: | Alexey Botchkov | CPU Architecture: | Any | 
   [7 Nov 2005 8:04]
   [ name withheld ]        
  
 
   [7 Nov 2005 8:25]
   Valeriy Kravchuk        
  Thank you for a bug report. I was able to repeat it with both 5.0.15 on Windows and with 5.0.16-BK (ChangeSet@1.1957.1.18, 2005-11-03 20:29:21+02:00, jani@ua141d10.elisa.omakaista.fi) on Linux: mysql> use test; Database changed mysql> create table mytable (mycol int(10) not null); Query OK, 0 rows affected (0.25 sec) mysql> alter table mytable alter column mycol set default 0; Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> desc mytable; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | mycol | int(10) | NO | | | | +-------+---------+------+-----+---------+-------+ 1 row in set (0.15 sec) mysql> alter table mytable alter column mycol set default 1; Query OK, 0 rows affected (0.04 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> desc mytable; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | mycol | int(10) | NO | | | | +-------+---------+------+-----+---------+-------+ 1 row in set (0.01 sec) mysql> insert into mytable values(); ERROR 1364 (HY000): Field 'mycol' doesn't have a default value As a workaround, I recommend you to use more standard way (same as in Oracle, for example) to modify column properties: mysql> alter table mytable modify mycol int(10) not null default 1; Query OK, 0 rows affected (0.17 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> desc mytable; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | mycol | int(10) | NO | | 1 | | +-------+---------+------+-----+---------+-------+ 1 row in set (0.01 sec) It just works, as in any database.
   [24 Nov 2005 16:00]
   Bugs System        
  A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/internals/32685
   [3 Dec 2005 18:04]
   Alexey Botchkov        
  fixed in 5.0.17
   [6 Dec 2005 21:44]
   Paul DuBois        
  Noted in 5.0.17 changelog.

