我创建迁移是这样的:php artisan make:迁移create_categories_table-创建类别
然后我添加了一些列,比如:
Schema::create('categories', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 150);
$table->timestamps();
});
然后:php artisan迁移
这将创建表类别
,然后在类别中插入:
insert into categories
(name)
values
('sport')
这将插入行,但在列创建的是
null
而不是当前时间戳。
我犯了什么错?
我做了(mysql命令):
显示创建表类别
:
CREATE TABLE `categories` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(150) COLLATE utf8mb4_unicode_ci NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`) )
ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci
这清楚地表明在
处创建的的默认值为空。为什么?
而不是使用,
$table->timestamps();
使用
$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent();
它将设置在列处创建和在列处更新的默认值。之后,它将存储当前时间戳。
我在MySQL数据库中有一个表,其中包含一个默认值的列,在数据库端使用phpMyAdmin定义。当我使用HiberNate插入新行时,我得到这个错误: 通用域名格式。mysql。jdbc。例外。jdbc4。MySQLIntegrityConstraintViolationException:列“status”不能为null 我还需要做些什么来使用默认值吗? 实体
问题内容: 输出: IST 2017年9月12日12:36:24 IST 2007年1月1日星期一12:36:24 但是,当我在不同的环境中使用相同的代码时,输出更改为以下内容: 输出: IST 2017年9月12日12:36:24 2007年1月1日星期一格林尼治标准时间12:36:24 仅供参考,我尝试在设置值之前和之后打印日历实例的时区,并且两者都在“ IST”中。 我想知道这个的根本原
我对Liquibase有点陌生。我遇到了一个场景,在一个中,它试图首先添加默认值,而不是旁边的空约束。 但这里的问题是两者都
问题内容: 我用Java编写并编译了一个简单的Hello World程序,但是当我尝试运行该程序时,却收到了错误消息。只有在我执行命令后,它才能成功运行。 奇怪的是,当前目录似乎已经是类路径的一部分。剧本 打印,尽管我再次必须显式设置该选项。 有谁知道为什么会这样?我正在使用Ubuntu 16.04和open-JDK版本1.8。 问题答案: 我希望已经设置了环境变量。运行以查看其设置。 如果您不使
我的桌子是这样的: ID名称日期1 a 2 b 3 C 当我今天选择一个随机用户时: 到目前为止,我的程序运行良好。我想要的是周二(03/15/2016)当我运行随机选择器时,我希望它将B和C的日期重置为空,并用2016-03-14留下A,这样A就不会在周二被选中。