0

why for create second table (Tags) I get error?

$sql = "CREATE TABLE IF NOT EXISTS Articls (
            id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,     
            name VARCHAR(254) COLLATE utf8_persian_ci NOT NULL,                     
            alias INT(10) UNSIGNED NOT NULL
)   DEFAULT COLLATE utf8_persian_ci";


/////////////////////////////////////////////////////////////////////////

$sql = "CREATE TABLE IF NOT EXISTS Tags (
            id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,  
            alias INT(10) UNSIGNED NOT NULL,    
            name VARCHAR(256) COLLATE utf8_persian_ci NOT NULL,    
            FOREIGN KEY (alias) REFERENCES Articls (alias)      
) DEFAULT COLLATE utf8_persian_ci";

Error:

Table Articls created successfully / Error creating Tags: Can't create table 'admin_pars.Tags' (errno: 150)

ali ali
  • 49
  • 7

1 Answers1

1

Your foreign key reference is referencing an arbitrary column in Articls. Either you want:

FOREIGN KEY (alias) REFERENCES Articls (id)  
                                      //^^ 

Or, you want to declare alias to be a unique key in Articls.

Rizier123
  • 58,877
  • 16
  • 101
  • 156
Gordon Linoff
  • 1,242,037
  • 58
  • 646
  • 786