mysql – Laravel Migration DELIMITER
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – Laravel Migration DELIMITER,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2222字,纯文字阅读大概需要4分钟。
内容图文
我正在尝试通过工匠迁移创建MySQL触发器.
DB::unprepared('
DELIMITER $$
CREATE TRIGGER cascade_courseAffinity_after_facultyAffinity
AFTER DELETE ON faculty_affinities
FOR EACH ROW
BEGIN
DELETE ca
FROM course_affinities AS ca
JOIN courses AS course1 ON ca.course1_id = course1.id
JOIN courses AS course2 ON ca.course2_id = course2.id
WHERE (course1.faculty_id = OLD.faculty1_id OR course1.faculty_id = OLD.faculty2_id)
AND (course2.faculty_id = OLD.faculty1_id OR course2.faculty_id = OLD.faculty2_id);
END
$$
');
然而,当我运行迁移时,我收到错误
SQLSTATE[]: Syntax error... near DELIMITER $$at line 1
帮助他人?
编辑1:这是我在MySQL上使用的迁移文件
创建“课程”表,其中包含与教师(faculty_id)的一对多关系.
Schema::create('courses', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 150);
$table->integer('faculty_id')->unsigned();
$table->foreign('faculty_id')->references('id')->on('faculties');
$table->boolean('active')->default(1);
//$table->softDeletes();
});
创建“faculties”表.
Schema::create('faculties', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 150)->unique();
$table->boolean('active')->default(1);
//$table->softDeletes();
});
创建“course_affinities”表,其中包含课程之间的多对多关系自我关系.
Schema::create('course_affinities', function (Blueprint $table) {
$table->increments('id');
$table->integer('course1_id')->unsigned();
$table->foreign('course1_id')->references('id')->on('courses');
$table->integer('course2_id')->unsigned();
$table->foreign('course2_id')->references('id')->on('courses');
$table->boolean('active')->default(1);
//$table->softDeletes();
});
创建“faculty_affinities”表,其中包含各个院系之间的多对多关系.
Schema::create('faculty_affinities', function (Blueprint $table) {
$table->increments('id');
$table->integer('faculty1_id')->unsigned();
$table->foreign('faculty1_id')->references('id')->on('faculties');
$table->integer('faculty2_id')->unsigned();
$table->foreign('faculty2_id')->references('id')->on('faculties');
$table->boolean('active')->default(1);
//$table->softDeletes();
});
解决方法:
问题出在DELIMITER命令中.此命令仅用于MySQL客户端.所以,你不能在Laravel中使用它.
花点时间阅读这篇文章:Creating MYSQL Procedure in Laravel 4 Migrations
这是一个与你非常相似的问题.
内容总结
以上是互联网集市为您收集整理的mysql – Laravel Migration DELIMITER全部内容,希望文章能够帮你解决mysql – Laravel Migration DELIMITER所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。