2016-04-23 3 views
0

У меня есть следующая таблица в SQL: столбец Receipt No вычисляется на основе PB + year-month-date с 9 нулями плюс значение первого столбца.вычисленный столбец на основе идентификатора для получения нет генерации

Пожалуйста, помогите мне перевести нижеследующий запрос для MYSQL.

Create table PBTran 
    (
     PBTranID int primary key auto_increment, 
     ReceiptNo VARCHAR(30) AS 'PB' + cast(datepart(yy,getdate()) as varchar(25)) + cast(datepart(mm,getdate()) as varchar(25)) + RIGHT('000000000' + CAST(PBTranID AS VARCHAR(10)), 9) 
) 

ответ

0

Вы можете использовать вид:

Create table t_PBTran (
    PBTranID int primary key auto_increment 
); 

Create view v_PBTran as 
    select PBTranId, 
      concat(date_format(now(), '%Y%m%d), lpad(PBTranId, 8, ' ')) 
    from t_PBTran; 

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

Если вы действительно хотите дату идентификатор был вставлен, у вас есть два варианта:

  1. есть столбец с датой ввода в таблицу и использовать вместо текущей даты/времени.
  2. С помощью триггера создайте квитанцию.
Смежные вопросы