ПредишенСледващото

За създаване на поле, чиято стойност автоматично се увеличава с един, трябва да се направят няколко действия:

1. Създаване на генератор за ключова област. Полето ключ трябва да е цяло число тип, NOT NULL и да се декларира като първичен ключ. Всъщност, можете да използвате генератора за всяка област за автоматично увеличение, а не непременно на ключа. Но най-генераторите се използва за ключови области.

2. Присвояване на генератора стойност 0 (или пък, ако на масата се прехвърля от друга база данни вече съдържа запис).

3. Създаване на спусъка ПРЕДИ INSERT, което увеличава стойността на 1.

Да започваме. В нашата база данни има Товар маса, в която за пръв път ID поле обявен за ЦЯЛО НЕ NULL. За съжаление, не е обявена на полето, като ключов първичен ключ. Промяна на таблицата чрез добавяне на първичен ключ на полето ID:

ALTER ТАБЛИЦА Товар ADD първичен ключ (ID);

А сега я направете поле автоматично нарастване:

СЪЗДАВАНЕ GENERATOR GenTovar;

/ * Задаване на първоначалната стойност генератор * /

Генератор, определени GenTovar до 0;

CREATE TRIGGER TrTovar ЗА Товар

АКТИВНОТО ПРЕДИ INSERT AS

IF (NEW.ID е нула), след това NEW.ID = GEN_ID (Gen_Tovar, 1); Енда

/ * Завършете сделката: * / COMMIT;

Операторите на този пример предоставят автоматично увеличаване на стойността на поле от 1. Така, вмъкване на първия запис задайте стойност 1. следващия запис ще бъде 2, и така нататък. Всичко това се прави в рамките на сделка, което е, дори ако на множество потребители да направят промени в стойностите на маса генератор винаги ще бъде уникален. Между другото, именно защото се променя маси извършат в рамките на сделка, както и прилагането може да се наложи да се научат стойността на терена преди сделката е завършена, е силно препоръчително, че вместо обикновена задача:

NEW.ID = GEN_ID (Gen_Tovar, 1);

го направим заедно с чек за NULL:

IF (NEW.ID е нула), след това NEW.ID = GEN_ID (Gen_Tovar, 1);

Сега можем да се тества ефективността на нашата автоматично увеличение. Създаване на следната заявка:

Поставете в Товар (Nazvanie, Stoimost) стойности ( "захар", 10.50); Поставете в Товар (Nazvanie, Stoimost) стойности ( "зърно", 8.20); SELECT * ОТ Товар;

Ако сте направили всичко правилно, а след това на масата ще бъде два албума, а полето за идентификационен номер автоматично ще се увеличи с 1:

Изпълнение на авто-увеличава ключови области

Фиг. 20.4. Демонстрация на autoincrement поле

Моля, имайте предвид, че сме направили за полеви стойности само Nazvanie и Stoimost. Стойностите за полето за идентификатор генерирани задейства автоматично. Не забравяйте да затваряне Interactive SQL прозорец да затвори сделката COMMIT команда.

За разлика от съхранени процедури, тригери, които не са предвидени в раздел IBConsole комунални сървъри дърво. Въпреки това, можете да видите в нашия спусъка. Ускорителят е създаден за масата Товар. Изберете го, щракнете с десния бутон и след това върху Свойства. Отворете прозореца на таблицата, която трябва да върви в раздела метаданни имоти. В този прозорец, след описваща създаването на масата, ще видите описание на нашия спусъка TrTovar.

Лекция 21. модификация ГСД команди данни. Скриптове.

модифициране на данни команди са език на ГСД (манипулиране на данните език), което е подмножество на езика SQL. Стойностите могат да бъдат поставени в таблицата, модифицирани или изтрити от следните оператори:

UPDATE (Промяна) DELETE (Изтриване)

В приложението на клиента, ние сме в състояние да използват табличен компонент таблица, в която тези действия могат да се извършват с помощта на методи, но това не винаги е възможно. Например, ние се въведе нов метод рекорд Добавяне в таблицата, която е автоматично увеличава поле, за да се попълва автоматично се задейства. След това ние ще влезем всички стойности с изключение на автоматичното увеличение. На следващо място, когато се опитате да извършите метод за публикация, поддържа запис, ние сме склонни да получите съобщение за грешка. Това се дължи на факта, че преди INSERT задейства пожарите след компонент маса е метод Post. И като ключова област има опцията NOT NULL, на InterBase няма да даде ни вмъкнете запис с празен ключ област. Но включването на заявката за записване INSERT се извършва без никакви проблеми. Ето защо, за редактиране на данни често се премине към компонента Query на SQL Имотът се възлага на желания заявката. Това означава, че вие ​​трябва да знаете, модификации на екипа и да могат да ги прилагат.

База данни за програмиране в Делфи

ТЕОРИЯ проектиране на база данни

Подкрепете проекта - споделете линка, благодаря!