Синхронизированные столбцы SQL через строку - PullRequest
1 голос
/ 19 августа 2011

Клянусь, я помню, как узнал, как это сделать, но я не могу вспомнить ключевое слово, чтобы найти его, в основном, я хочу иметь столбец в моей таблице, который автоматически обновляется при изменении другого столбца в той же таблице,Я хочу, чтобы обновление в основном представляло собой значение, полученное с помощью короткого сценария SQL на основе других значений в той же таблице.

Самая большая проблема заключается в том, чтобы оно автоматически обновлялось при изменении столбцов, из которых получено значениеаналогично тому, как обновляется электронная таблица Excel.

Ответы [ 5 ]

1 голос
/ 19 августа 2011

Сначала используйте КОМПЬЮТЕРНАЯ КОЛОННА , а затем триггер, если вычисляемый столбец не может этого сделать. Как столбец Возраст в этом примере.

CREATE TABLE MyTable(
    FirstName       VARCHAR(20),
    LastName        VARCHAR(20),
    DateOfBirth     DATETIME,
    Age         AS Cast(DateDiff("mm", DateOfBirth, GetDate())/12 AS INTEGER)
)
0 голосов
/ 19 августа 2011

Я полагаю, вы ищете триггер базы данных.

MySQL: http://dev.mysql.com/doc/refman/5.0/en/triggers.html

Sql-сервер: http://msdn.microsoft.com/en-us/magazine/cc164047.aspx

(надеюсь, это поможет вам начать работу! :))

По сути, высоздадим триггер для INSERT и UPDATE, чтобы убедиться, что значение не изменилось.

0 голосов
/ 19 августа 2011

Вы можете захотеть исследовать, используя Database Trigger , чтобы выполнить это.Разные РСУБД имеют разные способы их создания, поэтому проверьте документацию РСУБД.

0 голосов
/ 19 августа 2011

Возможно, вы думаете о самореференции внешний ключ

0 голосов
/ 19 августа 2011

Вы ищете ключевое слово "trigger"?http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html Это в основном то, что вы описали

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...