SAP HANA SQL序列

2018-01-07 10:42 更新

序列是根據(jù)需要按順序生成的整數(shù)1,2,3的集合。 在數(shù)據(jù)庫中經(jīng)常使用序列,因?yàn)樵S多應(yīng)用程序需要表中的每一行包含唯一值,序列提供了一種生成它們的簡(jiǎn)單方法。

或者,可以創(chuàng)建表,然后使用ALTER TABLE設(shè)置初始序列值。...

序列是根據(jù)需要按順序生成的整數(shù)1,2,3的集合。 在數(shù)據(jù)庫中經(jīng)常使用序列,因?yàn)樵S多應(yīng)用程序需要表中的每一行包含唯一值,序列提供了一種生成它們的簡(jiǎn)單方法。...

例子

嘗試以下示例。 這將創(chuàng)建表,之后它將在此表中插入幾行,不需要給出記錄ID,因?yàn)樗怯蒑ySQL自動(dòng)遞增。

mysql> CREATE TABLE INSECT
   -> (
   -> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
   -> PRIMARY KEY (id),
   -> name VARCHAR(30) NOT NULL, # type of insect
   -> date DATE NOT NULL, # date collected
   -> origin VARCHAR(30) NOT NULL # where collected
);

Query OK, 0 rows affected (0.02 sec)

mysql> INSERT INTO INSECT (id,name,date,origin) VALUES
   -> (NULL,'housefly','2001-09-10','kitchen'),
   -> (NULL,'millipede','2001-09-10','driveway'),
   -> (NULL,'grasshopper','2001-09-10','front yard');
	
Query OK, 3 rows affected (0.02 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM INSECT ORDER BY id;
+----+-------------+------------+------------+
| id | name        | date       | origin     |
+----+-------------+------------+------------+
| 1  | housefly    | 2001-09-10 | kitchen    |
| 2  | millipede   | 2001-09-10 | driveway   |
| 3  | grasshopper | 2001-09-10 | front yard |
+----+-------------+------------+------------+
3 rows in set (0.00 sec)

獲取AUTO_INCREMENT值

LAST_INSERT_ID()是一個(gè)SQL函數(shù),因此您可以從任何理解如何發(fā)出SQL語句的客戶端中使用它。 否則,PERL和PHP腳本提供獨(dú)占功能來檢索最后一條記錄的自動(dòng)遞增值。

PERL示例

LAST_INSERT_ID()是一個(gè)SQL函數(shù),因此您可以從任何理解如何發(fā)出SQL語句的客戶端中使用它。 否則,PERL和PHP腳本提供獨(dú)占功能來檢索最后一條記錄的自動(dòng)遞增值。...

$dbh->do ("INSERT INTO INSECT (name,date,origin)
VALUES('moth','2001-09-14','windowsill')");
my $seq = $dbh->{mysql_insertid};

PERL示例...

發(fā)出生成AUTO_INCREMENT值的查詢后,通過調(diào)用mysql_insert_id()來檢索該值 -

mysql_query ("INSERT INTO INSECT (name,date,origin)
VALUES('moth','2001-09-14','windowsill')", $conn_id);
$seq = mysql_insert_id ($conn_id);

重新編號(hào)現(xiàn)有序列

可能有一種情況,當(dāng)您從表中刪除了許多記錄,并且您想要重新排序所有記錄。 這可以通過使用一個(gè)簡(jiǎn)單的技巧,但你應(yīng)該非常小心這樣做,如果你的表有連接,與其他表。

可能有一種情況,當(dāng)您從表中刪除了許多記錄,并且您想要重新排序所有記錄。 這可以通過使用一個(gè)簡(jiǎn)單的技巧,但你應(yīng)該非常小心這樣做,如果你的表有連接,與其他表。...

mysql> ALTER TABLE INSECT DROP id;
mysql> ALTER TABLE insect
   -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
   -> ADD PRIMARY KEY (id);

重新編號(hào)現(xiàn)有序列...

默認(rèn)情況下,MySQL將從1開始序列,但是您也可以在創(chuàng)建表時(shí)指定任何其他數(shù)字。 以下是MySQL將從100開始序列的示例。

mysql> CREATE TABLE INSECT
   -> (
   -> id INT UNSIGNED NOT NULL AUTO_INCREMENT = 100,
   -> PRIMARY KEY (id),
   -> name VARCHAR(30) NOT NULL, # type of insect
   -> date DATE NOT NULL, # date collected
   -> origin VARCHAR(30) NOT NULL # where collected
);

或者,可以創(chuàng)建表,然后使用ALTER TABLE設(shè)置初始序列值。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)