Использование триггеров / подпрограмм с префиксами таблиц в mysql - PullRequest
0 голосов
/ 28 января 2011


Я привык использовать префиксы таблиц mysql в моих php-скриптах. И все же триггеры и процедуры иногда очень полезны. Хорошо. Допустим, у меня есть таблица: «pre_customers». И такая процедура, как

CREATE FUNCTION `get_all_clients`() RETURNS int(11)
    BEGIN
    DECLARE sum INT ;
    SELECT COUNT(id) INTO sum FROM pre_customers ;
    RETURN sum;
END

Ничего страшного, просто для примера. И есть также постоянная

<?php
define( 'DB_PREFIX', 'pre_' ) ;

Используется для изменения префиксов таблиц. Если мне нужно сделать sql-запрос в скрипте, я делаю это так

$query = "SELECT * FROM " . DB_PREFIX . "customers" ;
$result = mysql_query( $query ) ;
...

Хорошо, но если я захочу изменить этот префикс в php-скрипте вместе с именами таблиц, это разрушит все хранимые процедуры и триггеры, они все равно будут применяться к таблице pre_customers. Таким образом, вопрос в том, существует ли обычная практика, как обычно программисты решают эту проблему.

1 Ответ

0 голосов
/ 28 января 2011

Таким образом, вопрос в том, существует ли распространенная практика, как обычно программисты решают эту проблему.

  • Создание дампа
  • Создание какого-либо шаблона с использованиемdump, с заменой pre_ на %db_prefix%
  • Когда вам нужно изменить префикс - замените префикс в шаблоне и импортируйте его в mysql
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...