web-dev-qa-db-ja.com

プライマリキーなしでテーブルを作成または変更できません - Laravel Digitalocean管理対象データベース

私は私のアプリをDigitaloceanに展開しました(管理対象データベース)、_php artisan migrate_を呼び出すときは次のエラーが発生しました

SQLSTATE[HY000]: General error: 3750 Unable to create or change a table without a primary key, when the system variable 'sql_require_primary_key' is set. Add a primary key to the table or unset this variable to avoid this message. Note that tables without a primary key can cause performance problems in row-based replication, so please consult your DBA before changing this setting. (SQL: create table `sessions` (`id` varchar(255) not null, `user_id` bigint unsigned null, `ip_address` varchar(45) null, `user_agent` text null, `payload` text not null, `last_activity` int not null) default character set utf8mb4 collate 'utf8mb4_unicode_ci')

MySQL VAR _sql_require_primary_key_がtrueに設定されている場合は、Laravelマイグレーションが機能しないようです。

あなたはそのための解決策を持っていますか?

5
Michal Deimert

有効にすると、sql_require_primary_keyこれらの効果があります。

  1. 主キーがない新しいテーブルを作成しようとすると、エラーに失敗します。これには作成テーブルが含まれています... CREATE TABLE DESICを含めない限り、CREATE TABLE ... SELECTも含まれています。
  2. 主キーを既存のテーブルからドロップしようとすると、主キーを削除し、同じALTER TABLE文に主キーを追加する例外が許可されています。

テーブルに一意のNOT NULLインデックスが含まれていても、プライマリキーを削除すると失敗します。

  1. 主キーなしでテーブルをインポートしようとするとエラーが発生します。

デフォルト値はOFFですが、必要に応じてOFFからONに設定する必要があります。

重要なリンク

設定方法

0
Md. Amirozzaman

この行をマイグレーションファイルに追加します。 $ table-> increments( 'aid');

0