簡體   English   中英

mysql bitmask ID字段

[英]mysql bitmask ID field

如何創建自動遞增ID自動遞增的第二列(BitField)的表?

ID: 0 ->  BitField: 2^0 = 1
ID: 1 ->  BitField: 2^1 = 2
ID: 2 ->  BitField: 2^2 = 4
ID: 3 ->  BitField: 2^3 = 8
ID: 4 ->  BitField: 2^4 = 16
ID: 5 ->  BitField: 2^5 = 32
ID: 6 ->  BitField: 2^6 = 64
//etc

這是作為位掩碼的用戶表字段(請考慮“權限”的意思)。 因此,有一個附帶的問題:您認為為每個用戶授予一個選項的一對多選項和一個多對多的表是一個更好的實現(甚至不確定如何將所有信息格式化為一行)所以用位掩碼)?

CREATE TABLE [dbo].[Test](
[Id] [int] NOT NULL,
[BitField] AS (power((2),[id]))
                        ) ON [PRIMARY]

GO

-- Testing
INSERT INTO Test(Id) VALUES(2)
INSERT INTO Test(Id) VALUES(6)
INSERT INTO Test(Id) VALUES(8)

SELECT * FROM Test


Id  BitField
2   4
6   64
8   256

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM