 <p>For each column that has no default value or you want to insert the values other than default, you will need to provide the explicit name and value.</p> <p>You only can use an implicit list (<code>*</code>) if you want to select all columns and insert them as they are.</p> <p>Since you are changing the <code>PRIMARY KEY</code>, you need to enumerate.</p> <p>However, you can create a before update trigger and change the value of the <code>PRIMARY KEY</code> in this trigger.</p> <p>Note that the trigger cannot reference the table itself, so you will need to provide some other way to get the unique number (like a sequence):</p> <pre><code>CREATE TRIGGER trg_mytable_bi BEFORE INSERT ON mytable FOR EACH ROW BEGIN :NEW.id := s_mytable.nextval; END; </code></pre> <p>This way you can use the asterisk but it will always replace the value of the <code>PRIMARY KEY</code>.</p>