2011-02-18 15 views
1

auto_incrementカラムを、レコードの挿入ごとに10ずつインクリメントするように設定するにはどうしたらいいですか?例えばのためにMySQL - Auto_increment by 10

:代わりにデフォルトauto_incrementの1によって、

insert into temptable (name) values('abc'),('def'); 

select * from temptable; 
    id|name 
    1|abc 
    2|def 

auto_increment by 10, 
    id|name 
    10|abc 
    20|def 

答えて

2

あなたはしかし、これは、一度にすべてのテーブルに適用される、auto_increment_increment設定を変更する必要があります。私はテーブルごとの増分設定はないと思う。

これは通常、実際には良い考えではありません。請求書番号などを生成する予定ですか?その場合は、次の番号を生成するカスタムメソッドを使用する方がよい場合があります。あなたがいることを必要とするなぜ

1

は私はわからないんだけど、あなたは単に10

+0

ユースケースに応じて、これはそれを –

1

で値を掛けることができます出力にこの結果を持っているしたい場合は、AUTO_INCREMENTをオフにして、トリガーを追加することができます。単一の値、次のIDを持つ別のテーブルを設定し、そのテーブルの値に挿入された行のIDを設定:

CREATE TABLE next (next_id int not null); 
INSERT INTO next VALUES(0); 

delimiter | 

CREATE TRIGGER update_id BEFORE INSERT ON temptable 
    FOR EACH ROW BEGIN 
    SET NEW.id = (SELECT next_id FROM next); 
    UPDATE next SET next_id = next_id + 10; 
    END; 
| 
delimiter ; 
+0

を行うための良い方法であることができますニース。これには何のmySQLバージョンが必要ですか? –

+0

トリガーには5.0.2以降が必要です。 – regality