Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Membuat Prosedur MYSQL di Laravel 4 Migrasi

Ada dua masalah utama dengan kode Anda

  1. DELIMITER bukan pernyataan sql yang valid. Itu hanya perintah klien MySql. Jadi jangan pakai saja. BTW kesalahan yang Anda dapatkan memberi tahu Anda persis seperti itu.
  2. Anda tidak dapat menggunakan DB::statement untuk menjalankan CREATE PROCEDURE kode karena menggunakan pernyataan yang disiapkan sumber kode untuk Connection . Anda dapat menggunakan PDO exec() DB::connection()->getPdo()->exec() sebagai gantinya

Itu dikatakan contoh migrasi untuk tags imajiner tabel mungkin terlihat seperti ini

class CreateTagsTable extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('tags', function($table){
            $table->increments('id');
            $table->string('name')->unique();
        });
$sql = <<<SQL
DROP PROCEDURE IF EXISTS sp_insert_tag;
CREATE PROCEDURE sp_insert_tag(IN _name VARCHAR(32))
BEGIN
    INSERT INTO `tags`(`name`) VALUES(_name);
END
SQL;
        DB::connection()->getPdo()->exec($sql);
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        $sql = "DROP PROCEDURE IF EXISTS sp_insert_tag";
        DB::connection()->getPdo()->exec($sql);
        Schema::drop('tags');
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masalah dalam mengakses fungsi yang seharusnya dinonaktifkan di CODEIGNITER

  2. Apa kinerja ANTARA mysql di atas ..?

  3. Pilih baris antara baris tertentu ke beberapa baris dengan kondisi tertentu

  4. Bagaimana saya bisa menggunakan MySQL dengan Python 3.3 dan Django 1.5?

  5. MySQL - TAMPILKAN VARIABEL SEPERTI '%version%' tidak berfungsi di aplikasi Java saya