Понякога може да се наложи да генерирате последователност в MySQL. Тъй като MySQL няма вградена функция за създаване на последователност, трябва да я генерирате чрез SQL заявка. Ето как да създадете последователност в MySQL с помощта на MySQL заявка за последователност.
Как да създадете последователност в MySQL
Ето стъпките за създаване на последователност в MySQL. Има различни начини за генериране на последователност в MySQL.
Създайте последователност с помощта на AUTO_INCREMENT
Можете просто да съхранявате вашата MySQL последователност в колона, като използвате атрибут AUTO_INCREMENT по време на създаване на таблица. Да приемем, че искате да създадете таблица поръчки(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 на таблица и това също като първичен ключ.
В горната заявка INSERT предоставяме само стойности за order_date и сума колони, но не и id колона, но MySQL автоматично генерира последователност за нея.
Бонус четене:Как да сравним две таблици в MySQL
Създаване на последователност без използване на AUTO_INCREMENT
Да кажем, че искате да създадете друга колона с последователност, без да използвате AUTO_INCREMENT. В този случай ще трябва да използвате израза UPDATE, за да изчислите математически и да попълните тази колона с последователност.
Например, нека добавим последователност колона към горната таблица, за да съхраните нова последователност.
mysql> alter table orders add column sequence int;
Бонус четене:Как да копирам таблица в MySQL
След това използваме оператор UPDATE, за да създадем последователност в MySQL. Ще създадем последователност, която е два пъти id стойност на колоната
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
Можем също да създадем нелинейна последователност, като актуализираме формулата, използвана в израза UPDATE. Ето SQL заявката за генериране на поредица от квадратни стойности (y x y) на id колона
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 улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!