2015-03-09 2 views
0

Мне нужно создать таблицу, используя библиотеку Jackcess, которая состоит из справочного столбца внешнего ключа и столбца первичного ключа с автоматическим приращением. Кроме того, как я могу указать значения по умолчанию для всех столбцов, таких как Date/Timestamps?создать таблицу с столбцом внешнего ключа, столбцом первичного ключа AutoNumber и значениями по умолчанию для дат

В Jackcess cookbook, Я нашел один пример для создания таблицы, но не покрывает вышеуказанные случаи.

Как я могу реализовать вышеуказанное?

+0

Добро пожаловать в StackOverflow. Спасибо и другие chit-chat (прочитайте [help → tour] (http://stackoverflow.com/tour)), никогда не должны включаться в вопрос. – Anthon

+1

вы должны быть в состоянии сделать все, кроме ссылки на внешний ключ. на данный момент, jackcess не поддерживает создание индексов внешнего ключа. – jtahlborn

+1

, начиная с версии 2.1.5, можно создавать ссылки на внешние ключи. – jtahlborn

ответ

0

Создания отношения

Jackcess 2.1.5 добавлена ​​возможность создавать отношения (и, следовательно, ограничение внешних ключей) с помощью RelationshipBuilder, например

// example in the JavaDoc for RelationshipBuilder: 
// 
Relationship rel = new RelationshipBuilder("FromTable", "ToTable") 
    .addColumns("ID", "FK_ID") 
    .setReferentialIntegrity() 
    .setCascadeDeletes() 
    .toRelationship(db); 

Другие товары

  • Создание таблицы с полем AutoNumber:

Как показано в cookbook, что делается с помощью ColumnBuilder#setAutonumber(true).

  • Установка значения по умолчанию для поля:

Это может быть сделано путем создания нового свойства с именем «DefaultValue» для колонки:

Table tbl = db.getTable("Donations"); 
Column col = tbl.getColumn("DonationDate"); 
PropertyMap pm = col.getProperties(); 
pm.put("DefaultValue", "Date()"); 
pm.save(); 

Заметим, однако, что в то время как это значение по умолчанию будет использоваться ACE/Jet и UCanAccess, Jackcess сам в настоящее время не уважает свойство DefaultValue, когда он добавляет новые строки в таблицу.