问题标签 [mysql-error-1067]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - MySQL:将当前年份添加为字段“年份”的默认值
我在 MySQL(版本 5)中有下表:
我希望数据库在插入时自动添加当前年份,我尝试了以下 SQL 语句:
但它给出了以下错误:
我该怎么做才能获得此功能?提前致谢!
mysql - 在 MySQL 中定义默认日期值,类似于时间戳
我正在使用 MySQL(没有人是完美的),版本 4.1,我习惯于定义一些像这样的时间戳列:
我想做完全相同的事情,但对于 DATE 字段。原因是我不需要 TIMESTAMP 精度,并且由于 MySQL 中不存在功能索引,因此我无法快速访问具有给定日期的行(无论一天中的什么时间)。所以我尝试了以下方法,但它不起作用:
甚至
这也不起作用。
有任何想法吗?
mysql - 允许在 mysql 整数列中引用值?
考虑 table1 的表模式:
和查询:
这将在 MySQL 4x 下工作,但在 MySQL 5x 下会失败(错误 1067 (42000): Invalid default value for ..")。
我知道发生这种情况的原因 - country_id是int,因此不应被引用。某处是否有一个低于 5x 的 mysql 开关,使其表现得像 4x,这样查询就不会失败?
我继承了一个使用这样的查询的应用程序,我正在寻找一个快速修复,直到我有时间修复所有查询。
谢谢
mysql - 如何在mysql中将默认日期时间设置为系统日期时间
我正在尝试将我的列默认日期时间设置为系统日期时间。它向我显示了一个错误
“InsertionDate”的默认值无效
mysql - 尝试将现有的生产数据库表列从枚举转换为 VARCHAR
我有一个问题需要我将现有的现场制作(我在本地开发框中复制了架构,别担心)表列类型从枚举转换为字符串。
背景:
基本上,以前的开发人员让我的代码库完全混乱:迁移版本非常过时,显然他在开发的某个时间点之后从未使用过它,现在我的任务是将 Rails 1.2.6 应用程序迁移到2.3.5。
我无法让测试在 2.3.5 上正常运行,因为我的表列具有 ENUM 列类型,并且它们在我的 schema.rb 上转换为:string
,:limit => 0
这会在执行 rake 时产生无效默认值的问题db:test:prepare
,例如的:
我正在考虑编写一个迁移任务,查看所有数据库表中的枚举列并将其替换为 VARCHAR,我想知道这是否是解决此问题的正确方法。或者更好的是,如果有一种方法可以解决这个问题而无需修改数据库,那就更好了!
我也不确定如何编写它,以便它遍历我的数据库表并将所有 ENUM 替换colum_types
为 VARCHAR。
参考
mysql - mysql - 我可以将 VARCHAR 默认值设置为 NULL 吗?
在 mysql 中,我尝试像这样更改现有表:
我得到了回应:
为什么?
symfony1 - symfony 1.4:从新模式重新创建数据库
我正在尝试从新架构重新创建数据库,但我不断收到相同的错误Invalid default value for ...
,我已经多次更改了 schema.yml,甚至删除了导致此错误的值,但它仍然显示。无论我做什么,我仍然会遇到同样的错误。
我使用php symfony doctrine:build --all --and-load
但每次生成的 schema.sql 都是相同的。我已经删除了它,但不知何故,它知道架构与我正在编辑的 schema.yml 不同。
我试过清空缓存symfony cc
并删除数据下的sql文件夹,但它不起作用。
有任何想法吗 ???
- -编辑 - -
我刚刚意识到数据库已正确生成,但构建指令给了我同样的错误,除非我在 schema.yml 语法中确实有错误
mysql - 合并默认值和自动增量时出错
SQL查询:
MySQL 说:
文档 1067 - 'y' 的默认值无效,默认值是否可以与 mysql 中的自动增量相结合
什么是正确的 MySQL 语法?
sql - 如何将现有 MySQL 表中的 id 更改为从最后一个最高 id 自动递增的数据?
我刚刚设法将一个相当大的数据库从 SQL Server 迁移到 MySQL。我没有在迁移过程中将主键设置为自动递增,因为这些表具有基于 id 作为主键的关系,主键是另一个表中的外键。
现在为了添加新记录,我想将所有表中的主键“id”列更改为自动递增,但从每个表中 id 列中的最后一个最高数字开始。
在不失去我已经拥有的关系的情况下,最好的方法是什么?
更新:尝试添加自动增量会给我这个错误: