Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Laravel 4 माइग्रेशन में MYSQL प्रक्रिया बनाना

आपके कोड में दो प्रमुख समस्याएं हैं

  1. DELIMITER वैध एसक्यूएल कथन नहीं है। यह सिर्फ एक MySQL क्लाइंट कमांड है। तो बस इसका इस्तेमाल न करें। बीटीडब्ल्यू आपको जो त्रुटि मिलती है वह आपको ठीक यही बताती है।
  2. आप DB::statement का उपयोग नहीं कर सकते हैं निष्पादित करने के लिए CREATE PROCEDURE कोड क्योंकि यह तैयार कथन का उपयोग करता है source Connection . के लिए कोड . आप पीडीओ exec() का उपयोग कर सकते हैं DB::connection()->getPdo()->exec() इसके बजाय

कहा जा रहा है कि काल्पनिक tags . के लिए एक नमूना माइग्रेशन तालिका इस तरह दिख सकती है

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. [MySQL]:संयोजन विधि क्या है?

  2. दो तिथियों के बीच तिथियां प्राप्त करें

  3. एक सबमिट बटन के साथ एक बार में mysql तालिका में एकाधिक इनपुट करें

  4. MySQL में थोक बदलते कॉलम प्रकार

  5. MySQL का उपयोग करके तालिका से डुप्लिकेट डेटा निकालना