在我的數據庫中,我有幾個INTEGER類型的字段。我需要將其中的一些改爲BIGINT。將列從INTEGER改爲BIGINT
所以我的問題是,我可以使用下面的命令嗎?
ALTER TABLE MyTable ALTER COLUMN MyIntegerColumn TYPE BIGINT;
包含的數據是否被正確轉換?在這個列轉換後是一個「真正的」BIGINT列?
我知道這是不可能的,如果這個列上有限制(觸發器,ForeingKey,...)。但是如果沒有限制,可以這樣做嗎?
還是更給它一個幫助列轉換:
MyIntegerColumn -> MyIntegerColumnBac -> MyBigIntColumn
如果其中一個或多個列都對他們沒有約束(如外鍵,索引,缺省值,規則等),然後ansвer是肯定的,該數據將被corectly轉換。(這對火鳥2.5對於火鳥3.0我不知道)。 –
謝謝。因爲我不想在未來遇到我還不知道的問題。 – Andreas
根據https://firebirdsql.org/refdocs/langrefupd25-ddl-table.html#langrefupd25-alter-table觸發器和存儲過程不會阻止更改列,因爲火鳥2.5型。 –