Re: MySQL: CREATE TABLE, BLOB, UNIQUE, INDEX etc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



You should be very wary of the CREATE TABLE ... SELECT statement.
>From experience, the types created are not always conform to intuition -
I've had my share of nasty surprises

Much safer to do a CREATE TABLE statement defining the column types, then do
an INSERT INTO ... SELECT

Ignatius
_________________________
----- Original Message -----
From: "Dillon, John" <JDillon@cantor.co.uk>
To: "php" <php-db@lists.php.net>
Sent: Friday, August 29, 2003 5:06 PM
Subject:  MySQL: CREATE TABLE, BLOB, UNIQUE, INDEX etc


My code:

$query="
CREATE TABLE IF NOT EXISTS temp3 UNIQUE(CON175)
IGNORE SELECT DISTINCT CONCAT($tbl2.this,$tbl2.that) AS CON175 FROM
$tbl2
WHERE $tbl2.this='$rcc'
";

gives error:

Query failed: BLOB column 'CON175' used in key specification without a key
length.

Manual suggests to give a BLOB a length:
CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));

...but how do you work this into the above query?
CREATE TABLE IF NOT EXISTS temp3 (UNIQUE(CON175) BLOB,
INDEX(CON175)(50))...

..does not work, I suppose because CON175 has not been created yet?

CON175 is BLOB by default resulting from this part of the query: IGNORE
SELECT DISTINCT CONCAT($tbl2.this,$tbl2.that)... this and that are varchar
types.  How do I set this as varchar instead:

UNIQUE(CON175) VARCHAR(50)

does not work.

http://www.mysql.com/doc/en/CREATE_TABLE.html - lacks examples!

John























http://www.cantor.com
CONFIDENTIAL: This e-mail, including its contents and attachments, if any,
are confidential. If you are not the named recipient please notify the
sender and immediately delete it. You may not disseminate, distribute, or
forward this e-mail message or disclose its contents to anybody else.
Copyright and any other intellectual property rights in its contents are the
sole property of Cantor Fitzgerald.
     E-mail transmission cannot be guaranteed to be secure or error-free.
The sender therefore does not accept liability for any errors or omissions
in the contents of this message which arise as a result of e-mail
transmission.  If verification is required please request a hard-copy
version.
     Although we routinely screen for viruses, addressees should check this
e-mail and any attachments for viruses. We make no representation or
warranty as to the absence of viruses in this e-mail or any attachments.
Please note that to ensure regulatory compliance and for the protection of
our customers and business, we may monitor and read e-mails sent to and from
our server(s).

For further important information, please read the  Important Legal
Information and Legal Statement at
http://www.cantor.com/legal_information.html

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux