<style type="text/css"><br />p, li { white-space: pre-wrap; }<br /></style>mysql 中无法设置默认值为函数或者表达式,如果你强制设置时,就会报错误:#1067 - Invalid default value。
这不是mysql的bug,而是故意这么设计的。参看:
http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html这里写道:
"The DEFAULT value clause in a data type specification indicates a default value for a
column. With one exception, the default value must be a constant; it cannot be a function
or an expression. This means, for example, that you cannot set the default for a date
column to be the value of a function such as NOW() or CURRENT_DATE."
简单来说就是默认值不能是函数和表达式,所有才有上面的错误信息。
下面是一个例子,不使用函数和表达式的默认值:
来自:
http://stackoverflow.com/questions/168736/how-do-you-set-a-default-value-for-a-mysql-datetime-columnmysql> create table test (str varchar(32), ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
Query OK, 0 rows affected (0.00 sec)
mysql> desc test;
+-------+-------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+-------------------+-------+
| str | varchar(32) | YES | | NULL | |
| ts | timestamp | NO | | CURRENT_TIMESTAMP | |
+-------+-------------+------+-----+-------------------+-------+
2 rows in set (0.00 sec)
mysql> insert into test (str) values ("demo");
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+------+---------------------+
| str | ts |
+------+---------------------+
| demo | 2008-10-03 22:59:52 |
+------+---------------------+
1 row in set (0.00 sec)
mysql>
参考资料:
Date and Time Function
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html<!--EndFragment-->
分享到:
相关推荐
MySQL 1067错误是数据库在启动过程中遇到的一种常见问题,它通常表现为"Invalid default value for 'timestamp'",这可能会导致MySQL服务无法正常启动。这个错误与MySQL的默认时戳设置以及数据文件的完整性有关。...
MySQL数据库在5.7版本之后,对于`date`和`datetime`类型的字段,设置默认值为"0000-00-00"时会出现错误提示“Invalid default value for 'time'”。这个问题源于MySQL的`sql_mode`配置,特别是其中的`NO_ZERO_IN_...
my.ini在MySQL的目录,于是在同事机器上拷贝了一个my.ini拿来修改,并单独放在一个地方作为备份。其内容如下: 代码如下: #Uncomment or Add only the keys that you know how works. #Read the MySQL Manual ...
在尝试修改MySQL中的表结构时,可能会遇到错误`#1067 - Invalid default value for 'xxx'`。这通常发生在尝试为某个字段设置默认值时,但该默认值不符合该字段的数据类型或者格式要求。 **原因分析:** - **数据...
在项目中,经常会碰到往数据库中导入大量数据,以便利用sql进行数据分析。在导入数据的过程中会碰到一些需要解决的问题,这里结合导入一个大约4G的txt数据的实践,把碰到的问题以及解决方法展现出来,一方面自己做个...
然而,当你试图通过MySQL的图形化工具,如Navicat,来修改已有表的datetime字段默认值时,可能会遇到错误"1067 - Invalid default value for 'CREATE_TM'"。这是因为MySQL对默认值的表达式有一定的限制。在MySQL 5.6...
<input type="hidden" name="action" value="insert"> <label for="name">Name: <button type="submit">Insert <!-- 更多操作类型的表单 --> ``` 这样,你就可以通过Servlet实现与MySQL数据库的连接并执行...
解决出现Incorrect ...一个很简单的用户信息表,其中ID是int类型,自动填充的主键,其他两个非主键,我执行的insert语句是这样的:mysql.db_insert(“insert into userinfo values(”,’sven’,’111222′,’sven@q
- `ER_NO_DEFAULT_FOR_FIELD` 和 `ER_NO_DEFAULT_FOR_VIEW_FIELD`:在定义中未指定NOT NULL列的默认值。 - `ER_TOO_LONG_KEY`:索引键超过最大长度。 - `ER_TRUNCATED_WRONG_VALUE` 和 `ER_TRUNCATED_WRONG_VALUE...
在本案例中,错误出现在尝试创建`phpcms_c_down`表时,具体报错信息为“Invalid default value for 'classtype'”。这个错误意味着`classtype`字段的默认值设置不合法,系统无法识别或执行。 `classtype`字段被定义...
- **数据库设置**:决定使用哪种数据库(如 PostgreSQL、MySQL 或 SQLite),并安装相应的驱动程序。 - **Git 设置**:如果计划使用 Git 进行版本控制,请提前设置好 Git 环境。 ##### 1.3 创建 Django 项目 现在...
By default, dbxdrivers.ini is located at C:Program FilesCommon FilesBorland SharedDBExpress. * If you have updated any Borland packages in the system32 directory with unofficial patches or updates ...
如果你的数据库表中 `id` 字段的数据类型是字符串或其他非数字类型,那么就会出现“Field 'id' doesn't have a default value”的异常,因为数据库无法接受这种类型转换。 为了解决这个问题,我们需要告诉 MyBatis-...
+ CONDITION_INVALID_VALUE:无效条件值。 + DEFAULT_DAYS_BEFORE:默认天数之前。 + DEFAULT_DAYS_OVERVIEW_DAY_1:默认天数概览第一天。 + DEFAULT_DAYS_OVERVIEW_DAY_2:默认天数概览第二天。 * IRowMapped...
Mysql 甲骨文 是个开源的数据库server,可运行在多种平台, 特点是响应速度特别快,主要面向中小企业 中小型企业 PostgreSQL 号称“世界上最先进的开源数据库“,可以运行在多种平台下,是tb级数据库,而且性能也很...