· 9 years ago · Jan 04, 2017, 11:54 PM
1public function up()
2{
3 Schema::create('links_group', function (Blueprint $table) {
4 $table->increments('id');
5 $table->integer('users_id');
6 $table->string('name');
7 $table->timestamps();
8 $table->softDeletes();
9 });
10
11 DB::statement("CREATE OR REPLACE FUNCTION links_group_triger() RETURNS trigger AS
12 $BODY$
13DECLARE
14 temp_users_id INTEGER;
15 tablenew TEXT;
16BEGIN
17 temp_users_id := NEW.users_id;
18 tablenew := 'links_group_' || NEW.users_id;
19IF NOT EXISTS( SELECT * FROM links_group WHERE users_id = temp_users_id ) THEN
20 EXECUTE 'CREATE TABLE ' || tablenew || ' ( id SERIAL, PRIMARY KEY (id) ,
21CHECK ( users_id = ' || temp_users_id || ' ) ) INHERITS (links_group)';
22END IF;
23 EXECUTE 'INSERT INTO ' || tablenew || ' SELECT(' || TG_RELNAME || ' ' || quote_literal(NEW) || ').* RETURNING id;';
24RETURN NULL;
25END;
26 $BODY$
27LANGUAGE plpgsql;");
28
29 DB::statement("CREATE TRIGGER links_group_triger
30BEFORE INSERT ON links_group
31FOR EACH ROW EXECUTE PROCEDURE links_group_triger();");
32
33}
34
35$id_group = DB::table('links_group')->insertGetId($form);