今、プライマリキーがauto_increment
フィールドのテーブルがあります。しかし、プライマリキーをusername
,date
に設定する必要があります(日付に重複するユーザ名がないようにするため)。私は、プライマリキーではないフィールドをauto_incrementする必要があります
しかし、行情報(追加と削除)を変更するには、auto_increment
フィールドが必要です。
この状況では通常何が行われますか?
ありがとうございます!
今、プライマリキーがauto_increment
フィールドのテーブルがあります。しかし、プライマリキーをusername
,date
に設定する必要があります(日付に重複するユーザ名がないようにするため)。私は、プライマリキーではないフィールドをauto_incrementする必要があります
しかし、行情報(追加と削除)を変更するには、auto_increment
フィールドが必要です。
この状況では通常何が行われますか?
ありがとうございます!
(username、date)のコンポジットにユニークなインデックスを設定するだけです。
ALTER TABLE `table` ADD UNIQUE INDEX `name` (`username`, `date`);
また、あなたは
ALTER TABLE `table` DROP PRIMARY KEY, ADD PRIMARY KEY(`username`,`date`);
に試すことができると私はあなたがそれらの列はNOT NULLと宣言する必要があり、後者の場合で考えます。
:AUTO_INCREMENTは何の問題もなく、その後正常に機能します
ALTER TABLE table DROP PRIMARY KEY, ADD UNIQUE KEY(username,date);
。また、あなたのロー・ハンドリングに使用するだけでなく、AUTO_INCREMENTフィールドに一意のキーを配置する必要があります
ALTER TABLE table ADD UNIQUE KEY(id);
私はこのようにしましたが、まだエラーが発生していました: #1075 - 不正なテーブル定義です。オートコラムが1つしかなく、キーとして定義する必要があります – littleK
使用して、のようなもの:
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
user VARCHAR(32) NOT NULL,
thedate DATE NOT NULL,
UNIQUE(user,thedate)
);
をすでにテーブルを持っている、とだけしたい場合 ユーザー+ thedate上で一意制約を追加し、私はこれが古い質問ですけど
ALTER TABLE users ADD UNIQUE KEY user_date_idx (user, thedate);
を実行し、ここで私が問題を解決する方法である -
ALTER TABLE `student_info` ADD `sn` INT(3) UNIQUE NOT NULL AUTO_INCREMENT FIRST
便利なソリューションです、ありがとうございます! –
これは、ありがとう! – littleK
@littleK私は2つのフィールドを持っています。私は1つをプライマリキーとして設定し、別のフィールドは自動増分が可能ですか? –