powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Создание скрипта для существующей таблицы
5 сообщений из 5, страница 1 из 1
Создание скрипта для существующей таблицы
    #40050314
EliLT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hei,

У меня вопрос. У меня есть задача сделать sql скрипт, есть некоторые требования:

- добавление поля в таблицу как char (1)
- Заполните поле значением, рассчитанным на основе идентификатора (id)
- сделать поле обязательным с уникальным индексом
- когда скрипт обновляет данные в новом столбце, данные будут NOT NULL.

1. проблема в том, что я не могу сделать столбец уникальным.
2. если у меня есть char (1), он всегда будет выдавать ошибку уникального значения, потому что в столбце идентификатора уже есть две цифры.
3. как это можно записать с помощью row_number?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
ALTER TABLE table_x
ADD column_y char(1) NULL
GO

UPDATE table_x
SET column_y = column_id  (может быть id вместо row_number?)
GO

ALTER TABLE table_x
ALTER COLUMN column_y char(1) NOT NULL
GO

ALTER TABLE table_x
ADD CONSTRAINT uq_clmnY UNIQUE (column_y)
GO
...
Рейтинг: 0 / 0
Создание скрипта для существующей таблицы
    #40050422
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще надо было выложить начальную структуру таблицы в формате CREATE TABLE и имеющиеся в ней данные в формате INSERT INTO.

EliLT
добавление поля в таблицу как char (1)

Принимается

EliLT
Заполните поле значением, рассчитанным на основе идентификатора (id)

В упор не вижу использования поля id . В остальном - принимается.

EliLT
сделать поле обязательным с уникальным индексом

Надо понимать, это сделано 4-м, а не 3-м, запросом... принимается.

EliLT
когда скрипт обновляет данные в новом столбце, данные будут NOT NULL

Это 3-й запрос? не пойдёт.
Во-первых, он синтаксически неверный. Не поленитесь посмотреть правильный синтаксис.
Во-вторых, задание ничего не говорит о модификации структуры - просто уведомляет об особенностях уже имеющихся данных.

EliLT
проблема в том, что я не могу сделать столбец уникальным.

??? fiddle - всё нормально делается.

EliLT
если у меня есть char (1), он всегда будет выдавать ошибку уникального значения, потому что в столбце идентификатора уже есть две цифры.

Фраза непонятна.

EliLT
как это можно записать с помощью row_number?

Что "это"?

PS. В коде имеются неоднократные GO ... у Вас точно MySQL, а не SQL Server (MS SQL)?
...
Рейтинг: 0 / 0
Создание скрипта для существующей таблицы
    #40050443
EliLT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

У меня уже есть таблица с двумя столбцами. Мне нужно добавить третий с этими условиями, которые я упомянул.

Проблема в том, что если я хочу сделать третью таблицу, эта ошибка будет выброшена. "The CREATE UNIQUE INDEX statement terminated because a duplicate key was found..."
чтобы решить эту проблему, я не знаю, что делать. Я не могу сделать столбец уникальным, возможно, беспокоит, если обновление выполняется после id или char (1).
...
Рейтинг: 0 / 0
Создание скрипта для существующей таблицы
    #40050454
EliLT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если я поставлю его как char (2), тогда все будет вместе. Но я должен создать столбец с char (1), проблема в этом, наверное
...
Рейтинг: 0 / 0
Создание скрипта для существующей таблицы
    #40050471
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina
выложить начальную структуру таблицы в формате CREATE TABLE и имеющиеся в ней данные в формате INSERT INTO.
Если Вы это не сделали с самого начала - сделайте хотя бы сейчас.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Создание скрипта для существующей таблицы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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