Разница между GENERATED ALWAYS и GENERATED BY DEFAULT при создании автоинкремента в PostgreSQL заключается в следующем:
- GENERATED ALWAYS указывает PostgreSQL всегда генерировать значение для столбца автоинкремента. www.geeksforgeeks.org stackoverflow.com Любая попытка вставить или обновить значение в этот столбец приведёт к ошибке. www.geeksforgeeks.org
- GENERATED BY DEFAULT также указывает PostgreSQL генерировать значение для столбца автоинкремента, но позволяет вставлять или обновлять в него конкретные значения. www.geeksforgeeks.org Если предоставить значение, оно будет использоваться вместо сгенерированного системой. www.geeksforgeeks.org
Таким образом, GENERATED ALWAYS гарантирует, что PostgreSQL всегда генерирует уникальное значение для столбца, а GENERATED BY DEFAULT позволяет при необходимости вставлять конкретные значения. www.geeksforgeeks.org Если не предоставить значение, PostgreSQL сгенерирует его сам. www.geeksforgeeks.org