首页
学习
活动
专区
圈层
工具
发布

Laravel学习记录--数据库迁移

() } 数据库结构生成器常用命令 $table->engine = 'InnoDB' 指定表引擎 ->charset = 'utf8' 指定数据表默认字符集 ->collation = 'utf8_general_ci...('字段名') dropCloumn(['字段名','字段2']) 外键约束 $table->foreign('当前表从表字段')->references('参考表主表字段')->on('主表')...->onDelete('cascade')//级联删除 ->update('cascade')//级联更新 默认的外键名 数据表名称_外键字段_foreign 删除外键 dropForeign...('外键名') 开启/关闭外键约束 Schema::enableForeignKeyConstraints() Schema::disableForeignKeyConstraints() 创建索引...$table->string('name')->unique();//唯一索引 定义字段完成后创建索引 $table->unique('name'); 传递数组创建复合/合成索引 $table->index

1.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    3分钟短文:书接上回,Laravel数据库迁移的那些个小技巧

    比如我们创建的 events 表, 如果在迁移文件内添加字段,代码如下: [pic] 我们在数据库表中间的位置添加了一个 venue 字段。...我们需要空与非空约束,默认值约束,主键约束,外键约束等等数据库所具有的特性, 这才是关系型数据库的魅力。...比如声明一个布尔类型的值,并声明默认为false: $table->boolean('confirmed')->default(false); 比如设定一个字符串类型的字段,允许为null: $table...指定迁移开始和回滚所要执行的动作, 我们仅仅是添加一个字段,或者在回滚的时候,删除一个字段,代码如下图: [pic] 完成后在命令行执行迁移指令: php artisan migrate 输出结果如下:...,所以laravel所组装的SQL就默认是最后一个字段之后。

    2.5K30

    Laravel 通过迁移文件定义数据表结构

    Blueprint 类为我们提供了丰富的数据表字段定义方法,通过这些方法我们完成所有与数据表字段相关的操作,包括新增字段、删除字段、修改字段、添加索引和外键等等。...: $table->dropIndex('name'); $table->dropUnique('email'); $table->dropPrimary('id'); 添加、移除外键 所谓外键指的是一张表的字段...A 引用另一张表的字段 B,那么字段 A 就是外键,通过外键可以建立起两张表之间的关联关系,这样,数据表之间就是有关联的了,而不是一个个孤立的数据集。...('id')->on('users'); 如果你还想进一步指定外键约束(级联删除和更新,比如我们删除了 users 表中的某个 id 对应记录,那么其在文章表中对应 user_id 的所有文章会被删除...'); 注:不推荐使用外键,更不要使用外键约束功能,因为影响数据库性能,而且级联删除有可能造成非常严重的无法挽回的后果。

    3.3K21

    Laravel迁移数据库!

    id,还有用于记录创建时间 created_at 和 更新时间 updated_at,一个 timestamps() 方法就包含了, 只不过默认使用的是不直观的整型时间戳,如果要使用 datetime 格式用于直观地读取...所以,可以完善性地添加一个存在条件判断: Schema::dropIfExists('users'); 这样生成的就是类似下面的额 SQL 语句: DROP TABLE IF EXISTS databse_name.users...而在 laravel 里对一个空表修改字段,完全可以通过,我们创建新的迁移文件,然后在 up 方法内这样调用: $table->string('name', 100)->change(); 看,只用调用一个...: $table->dropColumn('votes'); 常用的约束比如主键约束,联合主键约束,唯一性约束,和索引约束。...']); // 联合主键 还有唯一性约束,为存在的字段创建: $table->unique('email'); // 唯一性 $table->unique('email', 'optional_custom_index_name

    1.6K10

    Laravel迁移数据库!

    id,还有用于记录创建时间 created_at 和 更新时间 updated_at,一个 timestamps() 方法就包含了, 只不过默认使用的是不直观的整型时间戳,如果要使用 datetime 格式用于直观地读取...所以,可以完善性地添加一个存在条件判断: Schema::dropIfExists('users'); 这样生成的就是类似下面的额 SQL 语句: DROP TABLE IF EXISTS databse_name.users...而在 laravel 里对一个空表修改字段,完全可以通过,我们创建新的迁移文件,然后在 up 方法内这样调用: $table->string('name', 100)->change(); 看,只用调用一个...: $table->dropColumn('votes'); 常用的约束比如主键约束,联合主键约束,唯一性约束,和索引约束。...']); // 联合主键 还有唯一性约束,为存在的字段创建: $table->unique('email'); // 唯一性 $table->unique('email', 'optional_custom_index_name

    1.7K00

    Mysql存储引擎

    外键约束 MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候,也会自动的创建对应的索引。...SET NULL则表示父表在更新或删除时,子表对应字段值被设置为NULL(不过要求该外键允许为空) 不写ON DELETE ON UPDATE 默认为RESTRICT级别。...1.2 MyISAM MyISAM 不支持事务、也不支持外键,优势就是访问的速度快,以 SELECT、INSERT为主的应用基本上都可以使用这个引擎来创建表。  ...null )engine=myisam charset=utf8;  经测试,MyISAM存储引擎,是没有事务控制的。...在8.0版本后.frm文件就没有了,由.sdi文件存储元数据,并且是以JSON格式存储的,可以格式化一下,就可以方便的看到数据库名、表名以及各个字段。

    1.6K20

    Laravel API教程:如何构建和测试RESTful API

    在您遵循下载说明(并添加到您的路径环境变量)后,使用以下命令安装Laravel: $ composer global require laravel/installer 安装完成后,您可以像这样创建(手脚架...后,您应该可以启动服务器并测试一切正常工作: $ php artisan serve Laravel development server started: Laravel带有Faker,一个伟大的为我们生成正确的虚拟数据格式的库。...当没有找到资源时,这将由Laravel自动返回。 500: 内部服务器错误。理想情况下,你不会明确地返回这个,但如果有意外的中断,这是你的用户将要收到的。 503: 暂停服务。...使用它将使我们的测试快速运行,但是权衡是一些迁移(migration )命令(例如约束)在该特定设置中将无法正常工作。

    25.5K20

    MySQL DDL 数据定义

    key 表示该字段是否是主键、外键、唯一键还是索引。 default value 表示该字段在未显示赋值时的默认值。 extra 表示其它的一些修饰,比如自增 auto_increment。...engine 表示数据库存储引擎,MySQL 支持的常用引擎有 MyISAM、InnoDB、MEMORY 和 ARCHIVE 等,不显示指明默认使用 MyISAM。...主键(Primary Key)与唯一键(Unique Key)有什么区别? 主键的一个或多个列必须为 NOT NULL,而唯一键可以为 NULL。 一个表只能有一个主键,但可以有多个唯一键。...# 删除主键约束 ALTER TABLE tbl_name DROP PRIMARY KEY; # 删除外键约束 ALTER TABLE tbl_name DROP FOREIGN KEY constraint_name...=(log_2015,log_2016,log_2017) INSERT_METHOD=LAST; (1)ENGINE 选项的值必须是 MERGE 或 MRG_MYISAM。

    1.1K20

    3分钟短文:说说Laravel模型关联关系最单纯的“一对一”

    [img] 所以,laravel模型提供了关联关系,本文就来梳理梳理那些用法。 代码时间 我们不要PPT似的念稿子,罗列出所有的关系模型,那样不直观也不是高效学习的方式。...一个user对应一个profile,所以这是一对一的关系, 在User模型里添加如下声明: class User extends Model { public function profile(...除了在程序上下文的一致性保证外,还可以使用数据库的外键,在删除user时将profile关联删除。...那么只要修改迁移文件, 并添加如下内容: $table->integer('user_id')->unsigned(); $table->foreign('user_id')->references('...id')->on('users')->onDelete('cascade'); 写在最后 本文介绍了laravel模型关联的最简单的“一对一”,我们从程序角度和数据库角度讲解了 如何在删除资源时的一致性删除

    2.9K31

    3分钟短文:说说Laravel模型中还算常用的2个“关系”

    引言 上一章我们介绍了比较简单的laravel模型关联关系中的一对一,介绍了关联操作方法。...在模型Profile中添加对应到User模型的关系: class Profile extends Model { public function user() { return...我们说关联关系需要外键,所以需要手动在events表内追加一个字段 state_id,用于指向刚才创建的表states的id字段。...比如创建事件时,手动为其指定状态: $event = new Event; $event->name = "Laravel Hacking and Pizza"; $event->state_id =...而效率也就是根据外键多查询一次SQL的消耗而已。但是明白其中原理之后, 在代码内耗时的操作里,也绝不可滥用关联关系,否则会严重消耗性能。

    3.4K31

    MySQL数据库的设计和命令行模式下建立详细过程

    (2)在对选课表的设计时,我们添加外键约束,可以使得两张表关联,保证数据的一致性和实现一些级联操作。...在MySQL具体实现上,索引需要建立数据结构,需要额外的磁盘空间来存储索引,而键(主键,外键和唯一键)都是逻辑层面的实现和约束,二者还是有着本质的区别。...唯一键可以起到唯一约束的作用,当然主键也可以起到唯一约束的作用。当然我们可以不建立唯一键和主键,直接为指定的数据表的列添加唯一约束。唯一约束保证指定列的值不能重复。...(b)还要注意一点是,使用engine可指明引擎,如果省略了engine语句,则使用默认的引擎(MYISAM)。MYSQL支持三个引擎:ISAM、MYISAM和HEAP。...搜索 [4]MySQL引擎 [5]MySQL中的四种Key [6]SQL的主键和外键约束 [7]唯一索引和唯一约束有什么区别

    2.8K00
    领券