Увеличьте запись на 1, если следующая запись такая же, как предыдущая, или начните заново, если это новая запись в MySQL. - PullRequest
0 голосов
/ 10 октября 2019

Я пытался реализовать триггер или хранимую процедуру в MySQL 5.7.22, где я могу выполнить следующую задачу, как показано ниже. У меня есть таблица с именем «Result»

. Я хочу сосредоточиться на столбце «ResultSampleNo», всякий раз, когда я вставляю значение в столбец, это нормально. Как показано ниже.

Result_id(AI)  Experiment_id   ResultSampleNo    Result_Name     Result_Value
1                 1             1                  abc             123
2                 1             2                  xyz             456

Но бывают случаи, когда в строке не будет 'ResultSampleNo', в этом случае я хочу сгенерировать строку со значением "NL-1, NL-2 ... .NL-н». Как, например,.

Result_id(AI)  Experiment_id   ResultSampleNo                  Result_Name     Result_Value
1                 1             1                                   abc             123       Previous Entry
2                 1             2                                   xyz             456       Previous Entry

3                 2             NL-1(This should be generated)      %abc             78       New Entry
4                 2             NL-2(Incremented by 1)              %abc              74      New Entry
5                 2             NL-3(Incremented by 1)              %abc              67      New Entry

6                 2             NL-1(Is starts again)               %xyz              56      New Entry
7                 2             NL-2(Incremented by 1)              %xyz              74      New Entry
8                 2             NL-3(Incremented by 1)              %xyz              67      New Entry

Теперь снова, если введите значения для номера эксперимента = 3, тогда номер образца результата должен начинаться с NL-1. Как это

Result_id(AI)  Experiment_id   ResultSampleNo                  Result_Name     Result_Value

9                  3             NL-1(This should be generated)      %abc             78       New Entry
10                 3             NL-2(Incremented by 1)              %abc              74      New Entry
11                 3             NL-3(Incremented by 1)              %abc              67      New Entry

12                 3             NL-1(Is starts again)               %xyz              56      New Entry
13                 3             NL-2(Incremented by 1)              %xyz              74      New Entry
14                 3             NL-3(Incremented by 1)              %xyz              67      New Entry

Я смог получить код для создания представления по этой ссылке, используя эту ссылку MySQL - Получить счетчик для каждого дублирующегося значения (Спасибо за ответы и владельцавопроса)

Но это было просто представление, и я не смог ничего создать в соответствии со своими требованиями.

Кроме того, я использую MySQL Workbench и буду импортировать данные напрямую изCSV-файл, и поэтому я хочу, чтобы база данных делала это автоматически, а не создавала VIEW.

Возможно ли это в MySQL или это было бы проще сделать в Excel VBA и просто вставить данные вБаза данных.

Спасибо, за помощь. Я довольно новичок в MySQL, а также VBA. Пожалуйста, дайте мне знать, если кто-нибудь может мне помочь с этим. Я был бы очень признателен. Я просто студент, изучающий вещи, поэтому извините, если я что-то упустил, пожалуйста, дайте мне знать, если вопрос нуждается в обновлении.

...