MariaDBの構文で間違えている箇所がわかりません
前提の誤り
以下の内容がそもそも誤っておりました。
タイトル MySQLの構文で間違えている箇所がわかりません
→MariaDBの構文で間違えている箇所がわかりません へ修正(2022.06.24)
タグ SQL maridb10.4 laravel9 → Laravel mariadb へ修正(2022.06.24)
解決したいこと
以下の構文において構文内容にエラーが出ている旨のメッセージが表示されました。
以下の構文チェックサイトを参照してみましたが、VScode上のターミナルと同様の”この構文が違う”といった内容が表示されるのみでした。
https://jp.piliapp.com/mysql-syntax-check/(MySQL構文チェック様)
発生している問題・エラー
エラー1
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'TYPE VARCHAR(255)' at line 1 (SQL: ALTER TABLE m_codelist ALTER COLUMN codelist_id TYPE VARCHAR(255);)
エラー2
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'TYPE decimal(8,2)' at line 1 (SQL: ALTER TABLE t_adoption_record ALTER COLUMN page_cnt TYPE decimal(8,2);)
エラー3
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'TYPE timestamp(0) without time zone' at line 1 (SQL: ALTER TABLE t_adoption_record ALTER COLUMN first_receipt_date TYPE timestamp(0) without time zone;)
または、問題・エラーが起きている画像をここにドラッグアンドドロップ
該当するソースコード
エラー1のソースコード
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class ChangeMCodelistTableColumnCodelistId extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('m_codelist', function (Blueprint $table) {
//$table->string('codelist_id', 255)->change();
DB::statement('ALTER TABLE m_codelist ALTER COLUMN codelist_id TYPE VARCHAR(255);');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('m_codelist', function (Blueprint $table) {
//$table->string('codelist_id', 10)->change();
DB::statement('ALTER TABLE m_codelist ALTER COLUMN codelist_id TYPE VARCHAR(10);');
});
}
}
エラー2のソースコード
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class ChangeTAdoptionRecordTableColumnPageCnt extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('t_adoption_record', function (Blueprint $table) {
//
DB::statement('ALTER TABLE t_adoption_record ALTER COLUMN page_cnt TYPE decimal(8,2);');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('t_adoption_record', function (Blueprint $table) {
//
DB::statement('ALTER TABLE t_adoption_record ALTER COLUMN page_cnt TYPE integer;');
});
}
}
エラー3のソースコード
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class ChangeArtistsTAdoptionRecordColumnChangetype extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('t_adoption_record', function (Blueprint $table) {
DB::statement('ALTER TABLE t_adoption_record ALTER COLUMN first_receipt_date TYPE timestamp(0) without time zone;');
DB::statement('ALTER TABLE t_adoption_record ALTER COLUMN final_decision_date TYPE timestamp(0) without time zone;');
DB::statement('ALTER TABLE t_adoption_record ALTER COLUMN date_final_disposition_set TYPE timestamp(0) without time zone;');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('t_adoption_record', function (Blueprint $table) {
//
DB::statement('ALTER TABLE t_adoption_record ALTER COLUMN date_final_disposition_set TYPE date;');
DB::statement('ALTER TABLE t_adoption_record ALTER COLUMN final_decision_date TYPE date;');
DB::statement('ALTER TABLE t_adoption_record ALTER COLUMN first_receipt_date TYPE date;');
});
}
}
いずれもALTERの書き方に指摘が出ておりました。
自分で試したこと
以下のサイトを参考に構文を調べてみましたが、基本的な構文はあっていそうでした。
https://www.projectgroup.info/tips/SQLServer/SQL/SQL000005.html