powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Изменение Default
14 сообщений из 14, страница 1 из 1
Изменение Default
    #34292019
yurikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день
ASA 9.0.1
Такой вопрос
могу ли я изменить в тригере (Table2 after insert) значение поля Default в таблице Table1
делаю так

alter Table1
modify column1 integer not null default 123 - так работает

alter Table1
modify column1 integer not null default Table2.id - не рабоатет

нужно чтобы при изменении Table2
обновлялось значение default таблици Table1

заранее спасибо!
...
Рейтинг: 0 / 0
Изменение Default
    #34293846
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странное желание если честно. Лучше будет отдать эту задачу клиенту, пусть он читает значение из table2 и предлагает его юзеру в качестве значения по умолчанию.

Но в принципе, это можно сделать и через триггер, запихнув всю команду "alter table ..." в локальную переменную char типа, а потом отдать эту переменную в execute immediate.
Но учти что alter table делает неявный коммит, а это всегда плохо внутри триггера.

---
http://www.rusug.ru] Портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
Изменение Default
    #34293897
yurikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 White Owl
Спасибо
...
Рейтинг: 0 / 0
Изменение Default
    #34293910
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yurikzДобрый день
ASA 9.0.1
Такой вопрос
могу ли я изменить в тригере (Table2 after insert) значение поля Default в таблице Table1
делаю так

alter Table1
modify column1 integer not null default 123 - так работает

alter Table1
modify column1 integer not null default Table2.id - не рабоатет

нужно чтобы при изменении Table2
обновлялось значение default таблици Table1

заранее спасибо!
А у тебя в table2.id несколько значения может быть, некорректно, другое дело если ты вычислил уже это значение после чего модифицируешь Table1.
...
Рейтинг: 0 / 0
Изменение Default
    #34293960
yurikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
table2.id содержит 1 значение
его может изменить юзер со стороны клиента

еще делал так :

declare const_1 integer;
select table2.id into const_1 from table2;

alter Table1
modify column1 integer not null default const_1;
тоже не работает
...
Рейтинг: 0 / 0
Изменение Default
    #34294055
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
менять структуру внутри тригера - что-то не то в проектировании...
лучше завести отдельную табличку, откуда другим тригером будут браться значения по умолчанию...
имхо
...
Рейтинг: 0 / 0
Изменение Default
    #34295602
yurikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рыжий Котменять структуру внутри тригера - что-то не то в проектировании...
лучше завести отдельную табличку, откуда другим тригером будут браться значения по умолчанию...
имхо

я должен предложить значение по умолчанию но
юзер не всегда может с ним согласится и должен иметь право изменить его

Table2 и есть таблица откуда берутся значения по умолчанию
но это не должно быть строгим умолчанием(должна быть возможность изменения юзером)
...
Рейтинг: 0 / 0
Изменение Default
    #34295696
yurikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще вопросик
при выполнении insert
в таблице которая имеет значение поля "column1 integer not null default 123"
поле column1 - пустое
после post
column1=123

как вывести значение поля column1=123 при insert
юзер должен видеть значение по умолчанию прежде чем выполнить post
...
Рейтинг: 0 / 0
Изменение Default
    #34295946
ездун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
yurikzкак вывести значение поля column1=123 при insert
юзер должен видеть значение по умолчанию прежде чем выполнить post
Уважаемый! Вы путаете проектирование клиентского приложения и проектирование БД. Вам лучше взять хорошую книгу по разработке приложения для работы с БД и проштудировать её.
...
Рейтинг: 0 / 0
Изменение Default
    #34296058
yurikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ездун yurikzкак вывести значение поля column1=123 при insert
юзер должен видеть значение по умолчанию прежде чем выполнить post
Уважаемый! Вы путаете проектирование клиентского приложения и проектирование БД. Вам лучше взять хорошую книгу по разработке приложения для работы с БД и проштудировать её.

приложение я пишу на delphi и знаю как это реализовать
просто хотелось узнать возможно ли это реализовать в базе
...
Рейтинг: 0 / 0
Изменение Default
    #34296298
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понимаю проблемы: вводите все как обычно, только транзакцию коммитьте, когда пользователь будет уверен...
...
Рейтинг: 0 / 0
Изменение Default
    #34296636
yurikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рыжий Котне понимаю проблемы: вводите все как обычно, только транзакцию коммитьте, когда пользователь будет уверен...

в чем он может быть уверен если он не видет значения по умолчанию
при выполнении команды insetr

на данный момент клиен пишется на delphi
но в будущем хочу все реализовать через Web Service
и отказатся от стороних оболочек
поэтому и хочу как можно больше операций выполнять непосредственно в базе
...
Рейтинг: 0 / 0
Изменение Default
    #34297266
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yurikzя должен предложить значение по умолчанию но
юзер не всегда может с ним согласится и должен иметь право изменить его

Table2 и есть таблица откуда берутся значения по умолчанию
но это не должно быть строгим умолчанием(должна быть возможность изменения юзером)
Если задача стоит так, то ЕДИНСТВЕННЫМ возможным вариантом решения, является:
1) Юзер пытается открыть диалог редактирования записи в table1
2) Диалог прежде чем открыться читает таблицу table2 и берет оттуда все значения по умолчанию для table1
3) Диалог показывает все TEdit/TCheckBox поля и заполняет нужные значениями прочитаными на предыдущем шаге.
4) Юзер редактирует поля в диалоге и тыкает в кнопку Save
5) Диалог делает INSERT/UPDATE записи в table1 и больше не смотрит ни на какие default значения.
...
Рейтинг: 0 / 0
Изменение Default
    #34297934
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yurikz Рыжий Котне понимаю проблемы: вводите все как обычно, только транзакцию коммитьте, когда пользователь будет уверен...

в чем он может быть уверен если он не видет значения по умолчанию
при выполнении команды insetr


после инсерт извлеките эту же запись по pk :)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Изменение Default
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]