PostgreSQL SQL语句生成自定义blob存储表

时间:2012-07-10 23:20:29

标签: sql django postgresql

我需要为当前项目使用看起来很棒的django-storages Database storage backend,但是:

  

它可用于将文件名映射到数据库blob:因此您必须使用手动创建的特殊附加表。该表应包含文件名的pk列(最好使用与FileField使用的相同类型:nvarchar(100)),blob字段(例如图像类型)和size字段(bigint)。

我会承认的。 ORM已经破坏了我。自从我编写了一个SQL语句以来,我已经有一段时间了,而且我并不熟悉PostgreSQL的SQL和SQL的风格。 BLOB的。

那么,有人可以帮我解决一下Postgres CREATE TABLE语句,其中包含上面提到的三列(FILE_NAME,BLOB,FILE_SIZE)以及相应的列类型吗?

1 个答案:

答案 0 :(得分:4)

对于PostgreSQL中的blob,通常使用bytea类型的列。您的陈述可能如下所示:

CREATE TABLE (
  file_name text PRIMARY KEY
 ,blob bytea
 ,file_size bigint
);

PostgreSQL中没有nvarchar,就像在SQL Server中一样。您可以使用varchar(100),但我建议您只使用text而不使用修饰符。

还有其他存储blob的选项。请参阅此related answer for more