Erro no script sql

Galera, iniciei meus estudos em SQL e estou tentado criar as tabelas no MySql Guery Brownser ,porem ele tá apresentando erro …

Segue o script:

CREATE TABLE CONTRATO (
dtInicio date,
nContrato integer(20) PRIMARY KEY NOT NULL,
nParcelas integer(10),
dtFinal date,
nomeCurso varchar(30),
cpf integer(20)
);

CREATE TABLE ALUNO (
cpf integer(29) PRIMARY KEY NOT NULL,
nome varchar(40)
);

CREATE TABLE CONTAaRECEBER (
valorPago real,
estatus varchar,
cpf integer(29),
nDocumento integer,
codConta integer PRIMARY KEY NOT NULL AUTO_INCREMENT,
FOREIGN KEY(cpf) REFERENCES ALUNO (cpf)
);

CREATE TABLE DOCUMENTO (
nDocumento integer(10) PRIMARY KEY NOT NULL,
tipoDocumento varchar(20),
valor real
);

ALTER TABLE CONTRATO ADD FOREIGN KEY(cpf) REFERENCES ALUNO (cpf)
ALTER TABLE CONTA A RECEBER ADD FOREIGN KEY(nDocumento) REFERENCES DOCUMENTO (nDocumento).

O erro que ele apresenta:

15 You have an error in your SQL syntax: check the manual that corresponds to your MySql server version for the right syntax to use near ’ 1064
cpf integer(29),
nDocumento integer,
codConta integer PRIMARY KEY NOT NULL A’ at line 3


CREATE TABLE CONTRATO (
dtInicio date,
nContrato integer PRIMARY KEY,
nParcelas integer,
dtFinal date,
nomeCurso varchar(30),
cpf integer
);

CREATE TABLE ALUNO (
cpf integer PRIMARY KEY,
nome varchar(40)
);

CREATE TABLE CONTAaRECEBER (
valorPago real,
estatus varchar (50),
cpf integer,
nDocumento integer,
codConta integer AUTO_INCREMENT PRIMARY KEY,
FOREIGN KEY(cpf) REFERENCES ALUNO (cpf)
);

CREATE TABLE DOCUMENTO (
nDocumento integer PRIMARY KEY,
tipoDocumento varchar(20),
valor real
);

Vê esse código ai camarada, é o seguinte:

1 - Cuidado com algumas regras básicas, sei que está começando, mas é bom ir aprendendo… Ex: cpf geralmente não pode ser chave primaria porque se tem um aluno estrangeiro e não tem CPF?

2 - Se é chave primária automaticamente será not null, então nem necessita colocar not null em chave primária.

3 - cuidado com esse limite nos itens integer também, geralmente nem é necessário utilizar, somente em casos bem específicos.

4 - Padroniza mais sua indentação, por exemplo tabela Aluno tem o campo nome, prefira utilizar nomeAluno ou nmAluno e siga esses conceitos para todas as outras, assim você fica sempre sabendo de onde é o campo que você está tratando, porque em grandes tabelas você vai se perder.

Alterações feitas, muito obrigado pelas Dicas!