亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將字符串更改為十進制拉維爾遷移

將字符串更改為十進制拉維爾遷移

PHP
九州編程 2022-09-25 20:15:54
我正在嘗試更改我的當前表,并且可以在我的遷移文件中使用SQL查詢來做到這一點,如下所示:<?php    public function up()    {        Schema::table('xyz', function (Blueprint $table) {        DB::statement('ALTER TABLE mydatabase.xyz CHANGE funding_needed funding_needed decimal(10, 2) NOT NULL DEFAULT 0.00 ');        DB::statement('ALTER TABLE mydatabase.xyz CHANGE funding_received funding_received decimal(10, 2) NOT NULL DEFAULT 0.00 ');        });    }    /**     * Reverse the migrations.     *     * @return void     */    public function down()    {        Schema::table('xyz', function (Blueprint $table) {        DB::statement('ALTER TABLE mydatabase.xyz CHANGE funding_needed funding_needed varchar(191) NOT NULL ');        DB::statement('ALTER TABLE mydatabase.xyz CHANGE funding_received funding_received varchar(191) NOT NULL DEFAULT 0');        });    }但是如果我這樣做,我會收到一個錯誤:<?php    public function up()    {        Schema::table('xyz', function (Blueprint $table) {             $table->decimal('funding_needed', 10, 2)->nullable(false)->default(0.00)->change();             $table->decimal('funding_received', 10, 2)->nullable(false)->default(0.00)->change();        });    }    /**     * Reverse the migrations.     *     * @return void     */    public function down()    {        Schema::table('xyz', function (Blueprint $table) {                   $table->string('funding_needed', 191)->nullable(false)->default(false)->change();         $table->string('funding_received', 191)->nullable(false)->default(0)->change();        });    }錯誤:語法錯誤或訪問沖突: 1064 您的 SQL 語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以獲取在“字符集utf8mb4默認”0“附近使用的正確語法,而不是空排序,在第1行更改”(SQL:更改表xyz更改funding_needed funding_needed數字(10,2)字符集utf8mb4默認“0”不是空排序,更改funding_received funding_received數字(10, 2) 字符集 utf8mb4 默認“0”不為空排序規則utf8mb4_unicode_ciutf8mb4_unicode_ciutf8mb4_unicode_ci)我想用第二種方式來做,因為在生產中運行它。我不想修改生產遷移以匹配我的生產數據庫。
查看完整描述

2 回答

?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

正如這個 Github 線程中所指出的,對于教義/dbal 包(即在運行此更新遷移之前安裝的包),在更改列類型時存在一個錯誤。

同時使用 with 應作為解決方法,如鏈接所示。->charset(null)->change()


查看完整回答
反對 回復 2022-09-25
?
慕田峪9158850

TA貢獻1794條經驗 獲得超7個贊

伙計們,我很難轉換,正如@echo評論中所說stringdecimal

->charset(null)->change();做了伎倆!

謝謝,伙計們節省了我的時間!



查看完整回答
反對 回復 2022-09-25
  • 2 回答
  • 0 關注
  • 142 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號