Как установить столбец для автоматического наращивания с помощью Oracle SQL Developer? Почему форма отключена?
Примечание. На изображении отображается Data Modeler, но вопрос и ответ на вопрос о редактировании существующей базы данных.
Как установить столбец для автоматического наращивания с помощью Oracle SQL Developer? Почему форма отключена?
Примечание. На изображении отображается Data Modeler, но вопрос и ответ на вопрос о редактировании существующей базы данных.
Если вы хотите сделать свой автоматический прирост PK, вам нужно установить свойство столбца идентификатора для этого первичного ключа.
См. изображение ниже для лучшего понимания.
//Мой источник: http://techatplay.wordpress.com/2013/11/22/oracle-sql-developer-create-auto-incrementing-primary-key/
К сожалению, oracle не поддерживает auto_increment, как mysql. Вам нужно приложить дополнительные усилия, чтобы получить это.
скажите, что это ваша таблица -
CREATE TABLE MYTABLE (
ID NUMBER NOT NULL,
NAME VARCHAR2(100)
CONSTRAINT "PK1" PRIMARY KEY (ID)
);
Вам нужно будет создать последовательность -
CREATE SEQUENCE S_MYTABLE
START WITH 1
INCREMENT BY 1
CACHE 10;
и триггер -
CREATE OR REPLACE TRIGGER T_MYTABLE_ID
BEFORE INSERT
ON MYTABLE
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
if(:new.ID is null) then
SELECT S_MYTABLE.nextval
INTO :new.ID
FROM dual;
end if;
END;
/
ALTER TRIGGER "T_MYTABLE_ID" ENABLE;
Вы можете сделать автоматический прирост в SQL Modeler. В окне свойств столбца Щелкните: General, затем отметьте поле Auto Increment. После этого для вас будет активировано окно автоматического инкремента.
@tom-studee, вы были правы, это возможно сделать в моделировании данных.
Дважды щелкните таблицу, затем перейдите в раздел столбца. Здесь дважды щелкните по столбцу, который будет иметь автоматический прирост. В общем разделе есть флажок "автоинкремент", просто отметьте его.
После этого вы также можете перейти в раздел "автоинкремент", чтобы настроить его.
Когда вы сохраните его и попросите модельера данных создать SQL script, вы увидите последовательность и триггер, которые представляют ваш автоинкремент.
В Oracle нет автоинкрементных столбцов. Вам нужна последовательность и триггер. Вот случайное сообщение в блоге, в котором объясняется, как это сделать: http://www.lifeaftercoffee.com/2006/02/17/how-to-create-auto-increment-columns-in-oracle/
Как это сделать с Oracle SQL Developer: В левой панели под соединениями вы найдете "Последовательности", щелкните правой кнопкой мыши и выберите создать новую последовательность из контекстно-зависимого всплывающего окна. Заполните детали: имя схемы, имя_последовательности, свойства (начало со значением, минимальное значение, максимальное значение, значение приращения и т.д.) И нажмите "ОК". Предположим, что у вас есть таблица с ключом, который использует этот auto_increment, в то время как вставка в эту таблицу дает только "your_sequence_name.nextval" в поле, которое использует это свойство. Думаю, это должно помочь!:)
Я нашел этот пост, который выглядит немного старым, но я решил, что обновляю всех на своих новых выводах.
Я использую Oracle SQL Developer 4.0.2.15 для Windows. Наша база данных - это Oracle 10g (версия 10.2.0.1), работающая в Windows.
Чтобы сделать автоматический прирост столбца в Oracle -
Ваш столбец id (первичный ключ) теперь будет автоматически увеличиваться, но последовательность будет начинаться с 1.
Если вам нужно увеличить id до определенной точки, вам нужно будет запустить несколько инструкций alter относительно последовательности.
Этот пост содержит более подробную информацию и как это преодолеть.
Я нашел решение здесь