【发布时间】:2019-06-29 20:29:50
【问题描述】:
由于我知道如何使用 mySql 原始语句和 Laravel 流利的查询让我有点困惑,特别是用于创建表的查询,我想使用原始 SQL 语句来创建表。
没有外键的表已成功创建,但在尝试使用外键创建表时收到错误消息。比如下面的代码
$sql_kreiraj_Prof="
CREATE TABLE profesori(
ProfID INTEGER PRIMARY KEY NOT NULL,
ime CHAR(15) NOT NULL,
prezime CHAR(15) NOT NULL,
k_ime CHAR(10) NOT NULL UNIQUE,
sifra CHAR(15) NOT NULL)";
try {
$sql_postoji="SELECT 1 FROM profesori LIMIT 1";
}
catch(Exception $e){
DB::statement($sql_kreiraj_Prof);
}
$sql_kreiraj_Predmet="
CREATE TABLE predmeti(
PredmetID INTEGER PRIMARY KEY NOT NULL,
naziv CHAR(100) NOT NULL UNIQUE,
semestar ENUM ('I','II','III','IV','V','VI','VII','VIII','IX','X') NOT NULL,
dan ENUM ('Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak') NOT NULL,
rbr_casa INTEGER NOT NULL,
FOREIGN KEY (predavacID)
REFERENCES profesori (ProfID)
ON UPDATE CASCADE)";
try {
$sql_postoji="SELECT 1 FROM predmeti LIMIT 1";
}
catch(Exception $e){
DB::statement($sql_kreiraj_Predmet);
}
出现以下错误的结果:
SQLSTATE[42000]:语法错误或访问冲突:1072 表中不存在键列“predavacID”(SQL:CREATE TABLE predmeti...
我现在正在尝试解决这个问题,因此非常欢迎任何有关如何解决此问题的建议。
【问题讨论】:
-
使用 laravel migrations 怎么样? laravel 还有 DB:select() 用于查询和 DB::statement() 用于运行语句。