如何在laravel中创建TEMPORARY表,插入记录并检索

时间:2017-01-28 13:33:29

标签: php mysql laravel

朋友们,我试图在laravel中创建临时表并插入记录并从临时表中检索该记录,然后删除表。

但我的临时表并非创造  DB::raw("CREATE TEMPORARY TABLE tbl_temp(temp_id VARCHAR(100),tempcolumn1 VARCHAR(100),tempcolumn2 VARCHAR(100),tempcolumn3 VARCHAR(100)) ; 我的表格结构如

Stud_table Stud_id | stud_name | class_type_id | exam_name_id Stud001 | xyz | class0001 | pri_0001 Stud002 | abcd | class0002 | sec_0001 Stud003 | cgdd | class0003 | sup_0001 Stud004 | ghgf | class0001 | pri_0001

如果类类型

,这里的exam_name依赖于class_type_id

“primary”然后从“primary_exam_table”

中检索数据

“辅助”然后从“Secondary_exam_table”

中检索数据

“超级”然后从“Super_exam_table”

中检索数据

Tbl_class_type

class_type_id | CLASS_NAME

class0001 | primary

class0002 |中学

class0003 |超级

primary_exam_table

primary_exam_id | priexam_name Pri0001 | primaryexam

Secondary_exam_table

Secondary_exam_id | secexam_name sec0001 | secondaryyexam

Super_exam_table

Super_exam_id | superexam_name Sup0001 | superexam

我想搜索并排序记录stud_name,class_name,exam_name 我在数组中检索记录,我想在临时表中插入该记录,使我的搜索和排序变得容易。 这就是为什么我想要临时表

3 个答案:

答案 0 :(得分:1)

我使用MySQL。它必须工作:

创建表格:

 Schema::create('real_temp', function (Blueprint $table) {
  $table->increments('id');
  $table->string('name');
  $table->string('airline');
  $table->timestamps();
  $table->temporary();
});

然后使用像

这样的表进行操作
DB::table('real_temp')->insert([...]);

然后

Schema::drop('real_temp');

答案 1 :(得分:0)

你写" TEMPORARY"在你的SQL查询?因为" TEMPORARY"不是一个mysql关键字,所以不会工作。 你有什么错误信息?

答案 2 :(得分:0)

Mysql临时表只存在于当前的MySQL连接中,所以你的SQL是正确的。你只是看不到或从另一个连接得到结果。

使用临时表的最佳方法是:

  1. 创建临时表
  2. 使用该临时表处理逻辑。
  3. 获取逻辑结果,但不是来自临时表。