Size: a a a

2021 October 13

OT

One Two in MySQL
если получил пустой список, то понятно что делать
источник

fn

first name in MySQL
благодарю за ответ, но этот момент я как раз делаю, только я проверяю через
```
SELECT COUNT(1) IndexIsThere FROM INFORMATION_SCHEMA.STATISTICS
WHERE table_schema=DATABASE() AND table_name='
table_name' AND index_name='index_name';
```
Но как мне условие поставить, не могу разобраться т.к. sql мой ограничен на обычных селектах)
источник

OT

One Two in MySQL
индекс не создастся, если такой уже существует
источник

fn

first name in MySQL
да я понимаю, но мне этот скл нужен для миграций (механизм для поддержки актуальной БД у разрабов путем выполнения по порядку скл) в моем проекте на пхп.
И если какой-то скл упадет с ошибкой, то последующий не выполнится, поэтому мне нужна здесь проверка 🙂
источник

OT

One Two in MySQL
так ты ж результат селекта на пхп можешь легко получить и в зависимости от этого либо создавать индекс, либо нет
источник

fn

first name in MySQL
Вообщей да, но в текущем контексте будет неправильно)
Так трудно проверить индекс?
Я нашел топик про это.
1. Создаю процедуру
2. Добавляю индекс
3. Удаляю процедуру

Или это слишком тупо?)
источник

A

Amirsho in MySQL
через php работаешь? индекс у тебя primary key?
источник

fn

first name in MySQL
да через пхп, но в текущем контексте это не имеет значение, не primary
источник

D

Dmitriy in MySQL
А где такое в адекватном процессе разработки может потребоваться? Структура базы данных (и индексы) управляется миграциями. А в миграциях IF NOT EXISTS не юзают, т.к. если индекс внезапно существует, то миграция должна валиться в ошибку
источник

G

Grigorij in MySQL
Через PREPERE можно concat'amи собрать любой SQL. По идее DDL тоже должно быть можно, но я не пробовал. Может быть mysql и не даст.
источник

G

Grigorij in MySQL
Но в целом есть ощущение, что ты гланды через жопку удаляешь :D
источник

fn

first name in MySQL
можно пропустить этот вопрос, там слишком все запутано, просто так получилось)
источник

G

Grigorij in MySQL
Вот у меня какое то похожее говно писалось
источник

fn

first name in MySQL
именно)
источник

G

Grigorij in MySQL
SET @sddl_alter =  if (
   exists(
       select distinct index_name from information_schema.statistics  
       where table_schema = 'ecom'  
       and table_name = @arch_table and index_name like 'PRIMARY'
   )
   ,'select ''index PRIMARY exists'';'
   , CONCAT('ALTER TABLE ',@arch_table,' ADD PRIMARY KEY (',PK_COLUMN_NAME,')'));
   
   
PREPARE stmtddl_alter FROM @sddl_alter;  
EXECUTE stmtddl_alter;  
DEALLOCATE PREPARE stmtddl_alter;
источник

G

Grigorij in MySQL
В целом выглядит как твой кейс
источник

G

Grigorij in MySQL
Но я так делаю, потому что программировать не умею :D
источник

fn

first name in MySQL
ага, процедура слишком костыльная для этого, а твое решение подошло
источник

fn

first name in MySQL
Спасибо всем за участие в этом странном вопросе :3
источник

P

Polkota in MySQL
Как штатными средствами показать загрузку мускуля

Какой-нить параметр, который покажет насколько мускуль загружен
источник