0

私は当初、alarmID の値を主キーにして自動インクリメントしたいと考えていました。しかし、私はタイトルの値をそのままにすることにしました。

値を挿入するたびに、alarmID 値が正確に 1 ずつ増加するように、alarmID を手動で自動増加するにはどうすればよいですか。

エントリがいつ挿入されたかを追跡して、後で時系列で表示する方法が必要です。

これが私のphpコードの作り方です。

$sql = "CREATE TABLE IF NOT EXISTS alarms (
    alarmID INT NOT NULL,
    PRIMARY KEY (Title),
    Title CHAR(30) NOT NULL,
    Description TEXT,
    DT DATETIME
    )";
4

2 に答える 2

1

このようなものは機能するはずです。一意のインデックス付きタイトルと自動インクリメントのアラーム ID を引き続き取得できます。これは、mysql 関数 / proc を使用するよりもはるかに微妙です。

CREATE TABLE IF NOT EXISTS alarms (
    alarmID MEDIUMINT NOT NULL AUTO_INCREMENT,
    Title CHAR(30) NOT NULL,
    Description TEXT,
    DT DATETIME,
    PRIMARY KEY (alarmID),
    UNIQUE KEY title (Title)
);
于 2013-08-25T05:54:30.213 に答える
0

ここでの最善の策は、alarmID を自動インクリメントの主キーにし、Title を一意にする必要がある場合は一意の制約を設定することです。

複数のユーザーがシステムを使用している場合、増分された新しい ID を手動で計算すると、実際には問題が発生する可能性があるため、ジョブを DBMS 自体に任せた方がよいでしょう。

于 2013-08-25T05:55:19.437 に答える