percona timestamp默认值0不为空

时间:2014-09-03 17:33:01

标签: mysql laravel percona

我已经使用Brew在我的mac上安装percona-server进行本地开发

┌─(veilig@Jamies-MacBook-Air:s018)──────────────(~/api.foo.com)─┐
└─(13:25:%)── brew info percona-server                                                      ──(Wed,Sep03 - feature/users)─┘
percona-server: stable 5.6.19-67.0 (bottled)

我试图运行此查询

create table `courses` (
   `id` varchar(36) not null,
   `title` varchar(255) not null,
   `created_at` timestamp default 0 not null,
   `updated_at` timestamp default 0 not null,
   `tokens` int not null default '0',
   `product_id` int null,
   `track_id` varchar(36) not null
) default character set utf8 collate utf8_unicode_ci

以及因为updated_at而必须创建timestamp default 0列时的窒息。 sql stmt是在我的Laravel 4.2 PHP应用程序中创建的。

有没有办法放宽这些限制才能使其发挥作用?

这是确切的错误

veilig@localhost (api_foo_com) > create table `courses` (`id` varchar(36) not null, `title` varchar(255) not null, `created_at` timestamp default 0 not null, `updated_at` timestamp default 0 not null, `tokens` int not null default '0', `product_id` int null, `track_id` varchar(36) not null) default character set utf8 collate utf8_unicode_ci;
ERROR 1067 (42000): Invalid default value for 'created_at'

当我们在我的同事数据库上尝试此操作时,我们不会遇到此问题。他正在跑步:

mysql Ver 14.14 Distrib 5.5.38, for debian-linux-gnu (x86_64) using readline 6.2

1 个答案:

答案 0 :(得分:0)

必须从我的sql-mode(或MySQL配置所在的位置)删除两个/etc/my.cnf,以便允许laravel迁移正常工作。

NO_ZERO_DATENO_ZERO_IN_DATE