Hi!
CREATE TRIGGER triggername BEFORE INSERT ON tabelle
FOR EACH ROW SET NEW.spalte = (SELECT IF(MAX(spalte),MAX(spalte),0)+1 FROM tabelle);
Wenn du das so schreibst, so scheint mit, dass du auch nicht-nummerische Werte bekamst. [Ein wenig probiert.] Das ist der Fall, wenn die Tabelle leer ist, dann kommt NULL beim MAX() raus. Allerdings nähme ich COALESCE(MAX(spalte), 0) statt des IF(), dann muss da nicht zweimal "gemaxt" werden.
Lo!