sql >> データベース >  >> RDS >> Mysql

MySQLでシーケンスを作成する方法

    MySQLでシーケンスを生成する必要がある場合があります。 MySQLにはシーケンスを作成するための組み込み関数がないため、SQLクエリを介してシーケンスを生成する必要があります。 MySQLシーケンスクエリを使用してMySQLでシーケンスを作成する方法は次のとおりです。

    MySQLでシーケンスを作成する方法

    MySQLでシーケンスを作成する手順は次のとおりです。 MySQLでシーケンスを生成するにはさまざまな方法があります。

    AUTO_INCREMENTを使用してシーケンスを作成

    テーブルの作成中にAUTO_INCREMENT属性を使用して、MySQLシーケンスを列に格納するだけです。テーブルorders(id、order_date、amount)を作成するとします。 シーケンスをidに保存します 列。

    mysql> create table orders(id int AUTO_INCREMENT PRIMARY KEY, 
            order_date date, amount int);
    
    mysql> insert into orders(order_date,  amount)
          values('2020-08-01', 250),
           ('2020-08-02',125),
           ('2020-08-03',300);
    
    mysql> select * from orders;
    +----+------------+--------+
    | id | order_date | amount |
    +----+------------+--------+
    |  1 | 2020-08-01 |    250 |
    |  2 | 2020-08-02 |    125 |
    |  3 | 2020-08-03 |    300 |
    +----+------------+--------+
    

    上記の表では、 idを定義しています。 列を主キーとして使用し、AUTO_INCREMENTオプションを含めて、主キーの値を自動的にインクリメントして保存します。

    MySQLでは、テーブルごとにAUTO_INCREMENT列を1つだけ持つことができ、それも主キーとして使用できることに注意してください。

    上記のINSERTクエリでは、 order_dateの値のみを提供します。 および金額 列はidではありません 列ですが、MySQLは自動的にそのシーケンスを生成します。

    ボーナスリード:MySQLで2つのテーブルを比較する方法

    AUTO_INCREMENTを使用せずにシーケンスを作成

    AUTO_INCREMENTを使用せずに別のシーケンス列を作成するとします。その場合、UPDATEステートメントを使用して、このシーケンス列を数学的に計算して入力する必要があります。

    たとえば、シーケンスを追加しましょう 新しいシーケンスを保存するには、上の表の列に移動します。

    mysql> alter table orders 
    add column sequence int;
    

    ボーナスリード:MySQLでテーブルをコピーする方法

    次に、UPDATEステートメントを使用してMySQLでシーケンスを作成します。 idの2倍のシーケンスを作成します 列の値

    mysql> update orders
           set sequence=2*id;
    
    mysql> select * from orders;
    +----+------------+--------+----------+
    | id | order_date | amount | sequence |
    +----+------------+--------+----------+
    |  1 | 2020-08-01 |    250 |        2 |
    |  2 | 2020-08-02 |    125 |        4 |
    |  3 | 2020-08-03 |    300 |        6 |
    +----+------------+--------+----------+
    

    ボーナスリード:MySQLで過去1か月のデータを取得する方法

    UPDATEステートメントで使用される式を更新することにより、非線形シーケンスを作成することもできます。 id のSquare値(y x y)のシーケンスを生成するSQLクエリは次のとおりです。 列

    mysql> update orders
          set sequence=id*id;
    
    mysql> select * from orders;
    +----+------------+--------+----------+
    | id | order_date | amount | sequence |
    +----+------------+--------+----------+
    |  1 | 2020-08-01 |    250 |        1 |
    |  2 | 2020-08-02 |    125 |        4 |
    |  3 | 2020-08-03 |    300 |        9 |
    +----+------------+--------+----------+
    

    Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。

    1. ActiveRecord ::StatementInvalid:PG InFailedSqlTransaction

    2. postgres / postgresql / psqlの文字/文字にコメントしますか?

    3. Varchar2とcharの主な違いは何ですか

    4. SQL Serverで「datetimeoffset」を「datetime2」に変換します(T-SQLの例)