Установите значение по умолчанию на CURRENT_TIMESTAMP + 5 минут [дубликат]

$_SERVER['REMOTE_ADDR'];

Пример:

if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
    $ip = $_SERVER['REMOTE_ADDR'];
}
1
задан spencer7593 29 August 2012 в 15:52
поделиться

2 ответа

Нет. Значение для предложения DEFAULT должно быть константой. (Единственным исключением из этого правила является использование CURRENT_TIMESTAMP в качестве значения по умолчанию для столбца TIMESTAMP.)

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

Например, в триггере BEFORE INSERT FOR EACH ROW вы можете выполнять вычисления из значений, предоставленных для других столбцов и / или данных запроса из других таблиц.

< hr>

EDIT

Для примера, приведенного в EDIT вопроса, отправной точкой для определения триггера:

CREATE TRIGGER mytable_bi 
BEFORE INSERT ON mytable 
FOR EACH ROW
BEGIN
  SET NEW.percentage = (100.0 * NEW.marks) / NULLIF(NEW.total_marks,0);
END
8
ответ дан spencer7593 19 August 2018 в 04:58
поделиться
  • 1
    Я неправильно понял этот вопрос. Использование триггера - правильный ответ! +1 для того, чтобы справиться с тем, что было задано :) – eggyal 28 August 2012 в 17:27
  • 2
    Я тоже считаю, что триггеры - это путь, но я хотел знать, может ли значение по умолчанию обрабатывать его. Наверное, это невозможно. – tGilani 28 August 2012 в 17:35
  • 3
    У меня были проблемы с запуском этого, пока я не понял проблему, с которой я сталкивался с разделителями. См. dev.mysql.com/doc/refman/5.0/en/trigger-syntax.html , в котором говорится: «Если вы используете программу mysql для определения триггера, который выполняет несколько операторов, это необходимо переопределить разделитель инструкции mysql, чтобы вы могли использовать; разделитель инструкций в определении триггера ". – Tyler Collier 6 August 2013 в 23:14

Решение триггера отлично, но я пришел сюда с немного другой ситуацией, и это решение не то, что я искал.

Я использую значение по умолчанию для единственного и единственного времени, когда я добавляю новый столбец в таблицу. В любой другой ситуации я не буду использовать это значение по умолчанию. Поэтому я не хочу иметь триггер.

Я думаю, что в этом случае единственной опцией является значение по умолчанию 0 (или любое конкретное значение). Затем обновите все эти только что вставленные 0 со значением, необходимым для вычисления.

Наконец, обновите значение по умолчанию этого нового столбца до того, что необходимо с этого момента.

0
ответ дан franer 19 August 2018 в 04:58
поделиться
Другие вопросы по тегам:

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