|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
У меня собственно говоря 2 вопроса: 1)У меня есть колонка с типом данных decimal (19,2) нужно поменять на (19,4) 2) При добавлении колонки я могу указать место колонки (по умолчанию добавляет в конец таблицы), а я хочу например в середину конкретно после какой то колонки ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2017, 17:16 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
kolyady, для начала - какой из Sybase-серверов у тебя? далее - если нужен определенный порядок колонок, то таблицу для этого мучить не надо. надо создать по таблице представление с правильным порядком полей. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2017, 17:31 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
23.05.2017 17:16, kolyady пишет: > У меня собственно говоря 2 вопроса: Сервер-то какой ;)? > 1)У меня есть колонка с типом данных decimal (19,2) нужно поменять на (19,4) alter table dba.mycooltable modify mycolumn decimal(19,4) ; > 2) При добавлении колонки я могу указать место колонки (по умолчанию > добавляет в конец таблицы), а я хочу например в середину конкретно после > какой то колонки Можешь хотеть дальше ;). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2017, 17:35 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
Dim2000, При альтере ошибка Could not execute statement. ALTER TABLE MODIFY <column> <datatype> is not supported. -- (dblib\db_alter.cxx 411) SQLCODE=-1013024, ODBC 3 State="HY000" Line 1, column 1 alter table dbo.tb_sc_LiquidatD modify OSTATOK decimal(19,4) а расположение я так понял никак указать нельзя, или кто то может все таки извращался и получилось, при добавлении или уже после , передвинуть в нужное место ВАЖНО удалить таблицу и создать заново не вариант, надо именно при добавлении колонки в существующую табл ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2017, 18:27 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
Добрый Э - Эх, представление то понятно, вопрос именно как таблицу вымучить до нужного результата ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2017, 18:29 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
23.05.2017 18:27, kolyady пишет: > При альтере ошибка У меня работает. Почему - догадайся сам ;). > а расположение я так понял никак указать нельзя Правильно понял. Тем более что порядок полей в таблице не важен. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2017, 18:56 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
kolyadyУ меня собственно говоря 2 вопроса: 2) При добавлении колонки я могу указать место колонки (по умолчанию добавляет в конец таблицы), а я хочу например в середину конкретно после какой то колонки А для чего это? В MySql вроде было что-то похожее Код: sql 1.
. Где вообще это может понадобиться? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2017, 19:22 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
Dim2000, Ну хотелось бы услышать решение , а не загадки. Не работает потому что в принцыпи не работает это мое мнение, если я не прав перепиши скрипт так как чтоб оно работало, строка самого альтера внизу ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 09:21 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
kolyady, тебя же первым вопросом спросили - какой именно у тебя Sybase-сервер. Ибо ASA, ASE и IQ - детища совершенно разных разработчиков. Каждая - со своими парадигмами и особенностями синтаксиса SQL. Поэтому вещи, работающие в одной из этих СУБД, совершенно не обязаны работать и в двух других. Кроме того, даже внутри одной "линейки" могут быть отличия от версии к версии. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 09:28 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
Teck, И в ms sql, такая возможность есть и по моему в оракле тоже, я новичек в sybes iq, искал как в этой БД это делается, пока к сожелению не нашел :( возможно потому что инфы по данной БД намного меньше чем по остальным). Вот и вынес данную тему на обсуждение возможно ктото нарил таки как такое сделать. Зачем это нужно, все очень просто есть таблици, есть на них же вьюхи, вьюхи постороены запросом select * from table, добавлю в конец колонку которую они видели всегда в начале, будет кипиш, поменять вьюху вместо звездочки на перечень колонок- это решение, но когда добавятся колонки в таблицу прийдется альтерить вьюху, со звездочкой альтерить не надо. Короче если у когото есть конкретные решения этих вопросов буду рад их лицезренть, любителей загадок, кроссвордов и шарад прошу проходить мимо данного чата. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 09:30 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
Добрый Э - Эх, Ну теперь то ясно что IQ какие есть идеи? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 09:35 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
kolyadyTeck, И в ms sql, такая возможность есть и по моему в оракле тожев Oracle точно нет. А в MS SQL Server-е, если посмотреть, что выполняет SSMS в результате "мышечных" перестановок порядка полей в таблице, то легко увидеть, что он делает CREATE TABLE с нужным порядком полей, перезаливает данные из старой таблицы в новую, навешивает на новую таблицу всю обвязку (индексы, триггеры, ограничения целостности, права доступа), после чего старую таблицу удаляет, а новую переименовывает в имя старой. То есть, это, по сути, тот вариант, который ты просил тебе не предлагать... kolyadyвьюхи постороены запросом select * from table, добавлю в конец колонку которую они видели всегда в начале, будет кипиш.ты это сам придумал или прочитал в документации / проверил на практике? Вообще-то, при создании представления по запросу select *, сервер распарсивает текущий список полей таблицы и в итоговый текст представления подставляет явное перечисление всех полей таблицы, в том порядке, что они есть на данный момент. "*" в этом слечае - не более чем синтаксический "рафинад" для упрощения труда ленивому прогруммисту. Соответственно, добавления поля в таблицу или смена их порядка не произведет на представление никакого эффекта и для учета этих изменений представление всё одно придется переделать... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 10:27 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
kolyadyДобрый Э - Эх, Ну теперь то ясно что IQ какие есть идеи? В глаза IQ не видел, но если верить синтаксической диаграмме, то должно быть что-то такое: alter table <owner.table_name> alter column <column_name> decimal (19,4); ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 10:38 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
kolyadyDim2000, Ну хотелось бы услышать решение , а не загадки. Не работает потому что в принцыпи не работает это мое мнение, если я не прав перепиши скрипт так как чтоб оно работало, строка самого альтера внизу ошибки. Ух ты как стало модно вопросы задавать . а я на посторение не попал :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 11:27 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
Добрый Э - Эх, тож не катит Could not execute statement. Syntax error near 'OSTATOK' on line 1 SQLCODE=-131, ODBC 3 State="42000" Line 1, column 1 alter table dbo.tb_sc_LiquidatD alter column OSTATOK decimal (19,4) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 14:13 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
[quot Добрый Э - Эх]kolyadyTeck, kolyadyвьюхи постороены запросом select * from table, добавлю в конец колонку которую они видели всегда в начале, будет кипиш.ты это сам придумал или прочитал в документации / проверил на практике? Вообще-то, при создании представления по запросу select *, сервер распарсивает текущий список полей таблицы и в итоговый текст представления подставляет явное перечисление всех полей таблицы, в том порядке, что они есть на данный момент. "*" в этом слечае - не более чем синтаксический "рафинад" для упрощения труда ленивому прогруммисту. Соответственно, добавления поля в таблицу или смена их порядка не произведет на представление никакого эффекта и для учета этих изменений представление всё одно придется переделать... По этому поводу возможно у твоей версии БД так и есть но в моей все что ты добавляеш в табл, вьюха тут же отображает ничего при "*" альтерить не надо и отображает так как было добавлено тобиш все новые в конец толкает. А в данный момент я хочу перевести колонку OSTATOK из decimal (19,2) в decimal (19,4) В итоге получается следующее: - просто заальтерить (расширить) колонку я немогу (покрайней мере рабочий механизм никто еще не подсказал); - значит прийдется создавать новую колонку с правильным типом, апдейтить инфу со старой, дропать старую, ренеймить новую; - в итоге колонка которая была вначале будет в конце - и возможно у когото юзеры отнесутся нормально к такому мои же однозначно не по факту - нужен механизм (если он существует), чтоб альтериить существующие колонки БЕЗ дроп криэйт - или на худой конец механизм чтоб переместить колонку в нужное место Буду рад любым предложениям ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 14:30 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
kolyadyTeck, И в ms sql, такая возможность есть и по моему в оракле тоже, я новичек в sybes iq, искал как в этой БД это делается, пока к сожелению не нашел :( возможно потому что инфы по данной БД намного меньше чем по остальным ). возможно Вы не пробовали искать ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 14:53 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
kolyady, Думаю новых предложений не будет. Ибо Документация The ALTER TABLE statement can change many characteristics of a table—foreign keys can be added or deleted, and so on. However, you cannot use MODIFY to change table or column constraints. Instead, you must DELETE the old constraint and ADD the new one. In all these cases, once you make the change, stored procedures, views, and any other item referring to this column will no longer work. Т.е. менять через DROP ADD. Думаю колоно-ориентированная архитектура IQ влияет А представление нужно делать как нужно. Что за пользователи у Вас, которые относятся к этому ненормально? В чем они работают? Они к номеру поля что-ли привязываются в выборке? Если так, то это ненормально. Привязка в источнике данных должна идти к названию поля. Нормальное клиентское приложение умеет каждую колонку привязать к нужному полю по названию, а сами колонки расставить как надо пользователю. Независимо от того как они там в базе созданы По вашему получается что один раз представление с *, я должен пересоздавать таблицы в него входящие так, чтобы обязательно соблюсти порядок полей, который заложен у пользователя! в его клиентской программе. Это очень "удобно" для разработчика базы ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 15:22 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
kolyady, А вообще про какую субд идет речь, я так в постах и не нашел... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 15:54 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
pandkolyadyTeck, И в ms sql, такая возможность есть и по моему в оракле тоже, я новичек в sybes iq, искал как в этой БД это делается, пока к сожелению не нашел :( возможно потому что инфы по данной БД намного меньше чем по остальным ). возможно Вы не пробовали искать прекрасный пост, но там нету того что я ищу, ну или я слепой :) укажите незрячему путь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 16:02 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
Sergey Orlov, SYBES IQ ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 16:03 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
kolyady, Если Вы по этой сслыке не видите доку по Sybase IQ , то я Вам ничем уже не помогу. Если Вы хотите чтобы я за Вас искал ответы на ваши вопросы , то сначала нужно обсудить стоимость работ. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 16:35 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
pandkolyady, Если Вы по этой сслыке не видите доку по Sybase IQ , то я Вам ничем уже не помогу. Если Вы хотите чтобы я за Вас искал ответы на ваши вопросы , то сначала нужно обсудить стоимость работ. Данный форум не есть комерческий, хотите заработать предлагайте себя на фрилансерских сайтах. Искать что то я Вас не прошу, я спрашиваю у людей которые знают как решить данную проблему, кинуть ссылку на доку (не будучи уверенным в том что там есть нужная инфа) не есть помощь , не знаете - не пишите. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 16:45 |
|
[Sybase IQ] как изменить тип колонки и указать расположение колонок
|
|||
---|---|---|---|
#18+
kolyady, Модератор с подозрением смотрит на тебя. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2017, 18:27 |
|
|
start [/forum/topic.php?fid=55&msg=39458629&tid=2009662]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 185ms |
0 / 0 |