Как избежать дублирования имени столбца в столбце изменения таблицы в MySQL?

Синтаксис JavaScript 101. Вот объявление функции:

function foo() {}

Обратите внимание, что нет точки с запятой: это просто объявление функции. Вам понадобится вызов foo(), чтобы фактически запустить функцию.

Теперь, когда мы добавляем кажущуюся безобидную восклицательную знак: !function foo() {}, она превращает ее в выражение. В настоящее время это выражение функции.

Конечно, ! не вызывает функцию, но мы можем теперь положить () в конец: !function foo() {}(), который имеет более высокий приоритет, чем ! и мгновенно вызывает функцию.

Так что автор делает сохранение байта на выражение функции; более читаемым способом его написания было бы следующее:

(function(){})();

Наконец, ! возвращает выражение true. Это связано с тем, что по умолчанию все возвраты IIFE undefined, что оставляет нас с !undefined, который является true. Не особенно полезно.

0
задан netdjw 18 March 2019 в 19:00
поделиться

1 ответ

Я понял, что у вас могут быть разные DDL. Если это так, я предлагаю вам иметь таблицу для управления версиями. Используя эту таблицу, вы можете иметь уникальный номер версии каждый раз, когда у вас есть новый скрипт DDL / DML. Затем вы можете проверить, существует ли этот номер версии в таблице версий, и если это не так, вы можете выполнить сценарий DDL, после чего вам нужно вставить номер версии в таблицу версий.

BEGIN
  DECLARE @version_number VARCHAR(30) DEFAULT 'V10298492';
  DECLARE @VERSION_EXISTS INT ;

  SELECT COUNT(*) 
    INTO @VERSION_EXISTS 
  FROM CMS_VERSION 
  WHERE VERSION_NUMBER = @version_number;

  IF (@VERSION_EXISTS = 0)
     RETURN;
  END IF;

  --DDL SCRIPT AFTER THIS POINT
  ...
  --END OF DDL SCRIPT

  INSERT INTO CMS_VERSION (VERSION_NUMBER) 
    VALUES (@version_number);
END;
0
ответ дан Derviş Kayımbaşıoğlu 18 March 2019 в 19:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: