Bug #25520 | Cannot create a text field with a default value in MySQL 5.0.27 for windows | ||
---|---|---|---|
Submitted: | 10 Jan 2007 9:31 | Modified: | 10 Jan 2007 10:41 |
Reporter: | Vikram J. Gurjar | Email Updates: | |
Status: | Not a Bug | Impact on me: | |
Category: | MySQL Server: General | Severity: | S3 (Non-critical) |
Version: | 5.0.27 | OS: | Windows (Windows) |
Assigned to: | CPU Architecture: | Any |
[10 Jan 2007 9:31]
Vikram J. Gurjar
[10 Jan 2007 10:41]
Valeriy Kravchuk
This is not a bug, but a reasult of default storage engine (InnoDB vs. MyISAM, usually) and default sql_mode (STRICT_TRANS_TABLES vs. empty) settings on Windows vs. Linux. You can get the same results on Linux: openxs@suse:~/dbs/5.0> bin/mysql -uroot test Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.0.34-debug Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create table test2(c1 int); Query OK, 0 rows affected (0.01 sec) mysql> alter table test2 add column abcdef text not null default ''; Query OK, 0 rows affected, 1 warning (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> show warnings; +---------+------+------------------------------------------------------+ | Level | Code | Message | +---------+------+------------------------------------------------------+ | Warning | 1101 | BLOB/TEXT column 'abcdef' can't have a default value | +---------+------+------------------------------------------------------+ 1 row in set (0.00 sec) mysql> show variables like 'sql_mode'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | sql_mode | | +---------------+-------+ 1 row in set (0.00 sec) mysql> set sql_mode='STRICT_ALL_TABLES'; Query OK, 0 rows affected (0.01 sec) mysql> alter table test2 add column abcdefg text not null default ''; ERROR 1101 (42000): BLOB/TEXT column 'abcdefg' can't have a default value mysql> show create table test2; +-------+----------------------------------------------------------------------- ----------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------------------------- ----------------------------------------------+ | test2 | CREATE TABLE `test2` ( `c1` int(11) default NULL, `abcdef` text NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 | +-------+----------------------------------------------------------------------- ----------------------------------------------+ 1 row in set (0.00 sec)