更新:それを数値として持つことを主張する場合は、次のようにビューを作成します。
SELECT
(@rownum:=@rownum + 1) AS rownumber,
yourTable.*
FROM
yourTable
, (SELECT @rownum:=0) r
しかし、それは本当にそれだけです-他の可能性はもうありません。コメントで言ったように行番号をキャストします。long
実際には、そうである必要がありますlong
。
または、手順で:
DELIMITER $$
CREATE PROCEDURE selectFromWhatever()
BEGIN
SELECT
(@rownum:=@rownum + 1) AS rownumber,
yourTable.*
FROM
yourTable
, (SELECT @rownum:=0) r;
END $$
DELIMITER ;
次に、で結果を取得します
CALL selectFromWhatever()
元の答え:
MySQLマニュアルから:
UUID()
1997年10月にTheOpenGroupによって公開された「DCE1.1:リモートプロシージャコール」(付録A)CAE(Common Applications Environment)仕様に従って生成されたUniversal Unique Identifier(UUID)を返します(ドキュメント番号C706、
http://www.opengroup .org / public / pubs / catalog / c706.htm)。
UUIDは、空間と時間でグローバルに一意の数値として設計されています。UUID()を2回呼び出すと、互いに接続されていない2台の別々のコンピューターでこれらの呼び出しが実行された場合でも、2つの異なる値が生成されることが期待されます。
UUIDは、aaaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee形式の5つの16進数のutf8文字列で表される128ビットの数値です。
最初の3つの数値は、タイムスタンプから生成されます。
4番目の数値は、タイムスタンプ値が単調性を失った場合(たとえば、夏時間のため)に時間的な一意性を保持します。
5番目の番号は、空間的な一意性を提供するIEEE802ノード番号です。後者が使用できない場合(たとえば、ホストコンピューターにイーサネットカードがない場合、またはオペレーティングシステムのインターフェイスのハードウェアアドレスを見つける方法がわからない場合)、乱数が代用されます。この場合、空間的な一意性は保証されません。それでも、衝突の可能性は非常に低いはずです。
現在、インターフェースのMACアドレスは、FreeBSDとLinuxでのみ考慮されています。他のオペレーティングシステムでは、MySQLはランダムに生成された48ビットの数値を使用します。
mysql> SELECT UUID(); -> '6ccd780c-baba-1026-9564-0040f4311e29'
警告
UUID()値は一意であることが意図されていますが、必ずしも推測できない、または予測できないわけではありません。予測不可能性が必要な場合は、UUID値を別の方法で生成する必要があります。ノート
UUID()は、ステートメントベースのレプリケーションでは機能しません。
もう1つの方法は、を使用CONCAT()
して一意のIDを作成することです。
SELECT CONCAT(PRINCIPAL_ID, '-', GROUP_ID) AS myUniqueID
FROM yourTable