Regex для поиска (и замены) внешнего ключа в сценарии SQL - PullRequest
0 голосов
/ 01 марта 2019

У меня есть сценарий sql со сценариями создания таблиц для нескольких таблиц.Мне нужен скрипт (sed) для обновления ссылки на внешний ключ в одном из них.

Можно ли обнаружить FOREIGN KEY (MY_KEY_ID) REFERENCES fff(ID) ON DELETE CASCADE , из следующего скрипта.

Обратите внимание, что это может быть не единственное вхождение этого конкретного текста, поэтому мне нужно найти тот, который встречается после CREATE TABLE MYTABLE.

CREATE TABLE MYTABLE (
  blah
  .....
  FOREIGN KEY (MY_KEY_ID) REFERENCES fff(ID) ON DELETE CASCADE ,
  FOREIGN KEY ....
)

ОБНОВЛЕНИЕ:

Конечная цель - использовать bash-скрипт для удаления ON DELETE CASCADE с одного ключа и добавления его к следующему ключу.

1 Ответ

0 голосов
/ 02 марта 2019

Это найдет строку FOREIGN KEY после строки CREATE TABLE, но что теперь?

$ awk '
    index($0,"CREATE TABLE MYTABLE") { f=1 }
    f && index($0,"FOREIGN KEY (MY_KEY_ID) REFERENCES fff(ID) ON DELETE CASCADE ,")
' file
FOREIGN KEY (MY_KEY_ID) REFERENCES fff(ID) ON DELETE CASCADE ,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...