簡體   English   中英

Mysql將空ENUM轉換為Postgresql ENUM

[英]Mysql empty ENUM to postgresql ENUM

我想將MySQL數據庫轉換為PostgreSQL。

在MySQL中,默認情況下ENUM數據類型允許使用空字段,這似乎不適用於PostgreSQL。 因此,我無法使用PostgreSQL從VARCHAR轉換為ENUM,因為我的數據庫中有很多PgSQL不允許的空字段。

我該怎么辦? 允許NULL並將空字段設置為NULL嗎? 創建類型時(在ENUM('A','B','C','')之類的類型中,在PostgreSQL的ENUM中添加一個空值)? 停止使用這種丑陋且不一致的ENUM數據類型(並改用varchar約束或其他表和外鍵)?

謝謝 :)

user1527491

如果實際上想在枚舉中包含空字符串值,則應在創建類型時將它們添加到枚舉中,是的。 任何將空字符串接受到不允許顯式允許空字符串的枚舉的數據庫都是錯誤的,如果您的應用程序依賴它,那也是錯誤的:)

如果想法是“未知”,那么使用NULL也是一個不錯的選擇-從純模型的角度來看,可能更簡潔。

歸結為一個經典的問題,當某些數據庫和系統的值明顯不同時,它們會將null和空字符串視為同一件事。

暫無
暫無

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

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