Я хотел бы рассмотреть возможность использования другой модели данных. Возможно, что-то более дружественное для отношений:
Животное:
| id | name |
--------------
| 1 | dog |
| 2 | cat |
| 3 | eagle |
Порода:
| id | name | breed_idx | animal_id |
---------------------------------------|
| 1 | Akita | 0 | 1 |
| 2 | Persan | 0 | 2 |
| 3 | Barbet | 1 | 1 |
| 4 | Boxer | 2 | 1 |
| 5 | Bald | 1 | 3 |
Mysql может легко позаботиться об автоматическом увеличении столбцов id, но поскольку столбец "breed_idx" требует немного логики, вам придется позаботиться об этом самостоятельно. Один из способов, которым вы могли бы сделать это, используя выбор во вставках:
insert into breed (name, breed_idx, animal_id) values('Shar pei', (select count(*) from breed where animal_id = (select id from animal where name = 'dog')), (select id from animal where name = 'dog'));
Обратите внимание, что это создаст столбец с нулевым индексом, как показывают мои данные выше.
Есть и другие способы сделать это (хранимые процедуры или триггеры), но это быстрый и независимый от поставщика баз данных способ достичь того, что (я думаю) вы ищете.