2013-06-19 2 views
0

Как бы указать bigint в create_table для PostgreSQL и SQLite в файле схемы rails?Использование bigint в PostgreSQL и SQLite

Я просмотрел типы данных, чтобы увидеть, что между ними есть перенос и проверены их емкости here и here.

Я тогда увидел this вопрос, и мне было интересно, если не существует способа создать bigint внутри схемы create_table.

Кроме того, я не обязательно ищу bigint, а скорее 64-битный тип данных; подписание не имеет значения (я буду получать доступ только к битам).

+0

Первый вопрос: почему вы пытаетесь использовать растровое изображение внутри реляционной базы данных? * Вы всегда можете забить квадратный штифт в круглое отверстие но это будет грязно. –

+0

@muistooshort Я просто хочу что-то, что будет работать на любой платформе, но мне нужно все 64 бита для моего столбца. – RileyE

+0

Вы неправильно поняли. Я допрошу ваше дизайнерское решение «Я буду только получать доступ к битам». Является ли это просто непрозрачным блоком данных, хранящимся в базе данных, или вы ожидаете выполнять бит-операции внутри запросов? –

ответ

1

В PostgreSQL:

create table whatever (some_column bigint); 

Это все. Но если вам нужны операции с битами, лучше использовать выделенный тип данных, а именно bit(n)

+0

Но может быть, возможно, и в SQLite? Кроме того, будет ли это работать в схеме рельсов? – RileyE

+1

@RileyE: Не так просто, как в Postgres. Тип Postgres 'BIT' или' VARBIT' может быть неограниченной длины (например, в мегабайтах) и поддерживает операции типа '&', '|' и их совокупные эквиваленты 'bit_and',' bit_or'. Ничего подобного для SQLite не существует, но вы можете его повторно реализовать, я думаю. – mvp

+1

@RileyE Это также будет работать в SQLite из-за его [системы динамического типа] (http://www.sqlite.org/datatype3.html). –

Смежные вопросы