Reputation: 1316
Is there a way to index the non-unique email column below within the CREATE TABLE command?
Instead of this:
CREATE TABLE addresses (
phone_number VARCHAR(12) PRIMARY KEY,
email TINYTEXT,
);
ALTER TABLE addresses ADD INDEX (email);
something like this:
CREATE TABLE addresses (
phone_number VARCHAR(12) PRIMARY KEY,
email TINYTEXT INDEX,
);
Upvotes: 0
Views: 807
Reputation: 8973
You have to specify the key length for text key. Try:
CREATE TABLE `addresses`(
phone_number VARCHAR(12),
email TINYTEXT,
PRIMARY KEY `phone_number`(`phone_number`) ,
KEY `email` (`email`(255)));
KEY
and INDEX
are synonyms in MySQL
Upvotes: 1
Reputation: 3015
Is this what you want?
CREATE TABLE addresses (
phone_number VARCHAR(12) PRIMARY KEY,
email TINYTEXT,
INDEX ix (email)
);
By default, all indexes are not unique.
Upvotes: 1
Reputation: 146
This creates and index named ix_email on the column email at table creation time.
CREATE TABLE addresses (
phone_number VARCHAR(12) PRIMARY KEY,
email TINYTEXT,
INDEX ix_email (email)
);
Upvotes: 1
Reputation: 696
Very easily:
CREATE TABLE addresses (
phone_number VARCHAR(12) PRIMARY KEY,
email TINYTEXT,
INDEX index_email (email)
);
Upvotes: 2