Подтвердить что ты не робот

Как установить столбец автоматического увеличения с помощью sql-разработчика

Как установить столбец для автоматического наращивания с помощью Oracle SQL Developer? Почему форма отключена?

Oracle SQL Developer

Примечание. На изображении отображается Data Modeler, но вопрос и ответ на вопрос о редактировании существующей базы данных.

4b9b3361

Ответ 1

Если вы хотите сделать свой автоматический прирост PK, вам нужно установить свойство столбца идентификатора для этого первичного ключа.

  • Щелкните правой кнопкой мыши по таблице и выберите "Изменить".
  • В окне "Редактировать таблицу" выберите "столбцы", а затем выберите свой ПК столбец.
  • Перейдите на вкладку "Идентификация столбца" и выберите "Порядок столбцов как тип". Это будет создать триггер и последовательность, и сопоставить последовательность с первичный ключ.

См. изображение ниже для лучшего понимания.

enter image description here

//Мой источник: http://techatplay.wordpress.com/2013/11/22/oracle-sql-developer-create-auto-incrementing-primary-key/

Ответ 2

К сожалению, 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;

Ответ 3

Вы можете сделать автоматический прирост в SQL Modeler. В окне свойств столбца Щелкните: General, затем отметьте поле Auto Increment. После этого для вас будет активировано окно автоматического инкремента.

Ответ 4

@tom-studee, вы были правы, это возможно сделать в моделировании данных.

Дважды щелкните таблицу, затем перейдите в раздел столбца. Здесь дважды щелкните по столбцу, который будет иметь автоматический прирост. В общем разделе есть флажок "автоинкремент", просто отметьте его.

После этого вы также можете перейти в раздел "автоинкремент", чтобы настроить его.

Когда вы сохраните его и попросите модельера данных создать SQL script, вы увидите последовательность и триггер, которые представляют ваш автоинкремент.

Ответ 6

Как это сделать с Oracle SQL Developer: В левой панели под соединениями вы найдете "Последовательности", щелкните правой кнопкой мыши и выберите создать новую последовательность из контекстно-зависимого всплывающего окна. Заполните детали: имя схемы, имя_последовательности, свойства (начало со значением, минимальное значение, максимальное значение, значение приращения и т.д.) И нажмите "ОК". Предположим, что у вас есть таблица с ключом, который использует этот auto_increment, в то время как вставка в эту таблицу дает только "your_sequence_name.nextval" в поле, которое использует это свойство. Думаю, это должно помочь!:)

Ответ 7

Я нашел этот пост, который выглядит немного старым, но я решил, что обновляю всех на своих новых выводах.

Я использую Oracle SQL Developer 4.0.2.15 для Windows. Наша база данных - это Oracle 10g (версия 10.2.0.1), работающая в Windows.

Чтобы сделать автоматический прирост столбца в Oracle -

  • Откройте соединение с базой данных на вкладке "Подключения"
  • Разверните раздел "Таблицы" и щелкните правой кнопкой мыши таблицу, в которой есть столбец, который вы хотите изменить, для автоматического увеличения и выберите "Изменить"...
  • Выберите раздел "Столбцы" и выберите столбец, который вы хотите автоматически увеличить (столбец первичного ключа)
  • Затем щелкните колонку "Identity Column" под списком столбцов и измените тип "Нет" на "Последовательность столбцов"
  • Оставьте настройки по умолчанию (или измените имена последовательности и триггера, если хотите), а затем нажмите OK

Ваш столбец id (первичный ключ) теперь будет автоматически увеличиваться, но последовательность будет начинаться с 1. Если вам нужно увеличить id до определенной точки, вам нужно будет запустить несколько инструкций alter относительно последовательности.
Этот пост содержит более подробную информацию и как это преодолеть.

Я нашел решение здесь